Seite 1 von 1

Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 09:49
von Holger
Hallo,

manchmal, nicht immer, werden Links ungewollt gekürzt.
Das sieht dann so aus:
http://www.yourboardaddress.com/communi...m.php?f=46
Sehr irritierend!
Im dritten Beitrag auf dieser Seite sieht man das Phänomen:
http://www.classicmachinery.net/forum/t ... 0-s40.html

Woran kann das liegen?
Auch im Edit-Modus snd die Links dann kaputt:
kaputte_links.jpg
Gruss
Holger

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 11:55
von oxpus
Das ist ein phpBB 3?
Das Forum kürze normalerweise die Links nur zur Anzeige, aber nicht beim Speichern.
Hier muss etwas geändert worden sein, dass diese Funktion deine Links zerstört.

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 11:58
von Holger
Japp! phpBB3.
Hm, ich wüsste nicht, was den Link zerstören könnte.

Ich kann den Link korrigieren, dann funktioniert er wieder. Es schient also nicht am Speichervorgang zu liegen ...

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 12:15
von oxpus
Wenn du den editierst, dann ist und bleibt der Link korrekt gespeichert?
Aber wann wird er denn dann zerstört?
Hat den vielleicht jemand kopiert (aus einem Post) und in einen neuen Beitrag eingefügt?
Dann wäre das eher ein Userfehler als ein Fehler im phpBB...

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 13:18
von Holger
Ich verstehe, was Du meinst.
Aber nein.

Wenn ich einen Link poste, kann ich Glück haben, und er geht durch.
Wenn nicht, kann ich den Beitrag editieren, und dann funktioniert der Link (wieder) - nach Einfügen und Speichern.
Das Problem haben wir z.B. oft mit Youtube-Links gehabt.

Wenn ich einen Beitrag mit einem kaputten Link editiere, ist er beim Öffnen des Edit-Modus kaputt. Ich muss ihn neu einfügen.

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 13:38
von Holger
Ich habe den Grund gefunden ...
Wenn ich einen Link einfüge und danach direkt ein Attachment, dann ist der Link kaputt.

Also, Link einfügen, keinen Umbruch, Attachment hochladen = Link kaputt

Kann es damit zu tun haben, dass Whitespaces gelöscht werden wenn die Seite nach einem Upload neu geladen wird?


Test (trotzdem sehenswert!):
http://www.youtube.com/watch?v=n2eD4GcL ... re=related

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 13:39
von Holger

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 13:42
von oxpus
Da können mehrere Dateien eine Rolle spielen:
-posting.php
-includes/functions_posting.php
-includes/message_parser.php

Entweder ist dort eine MOD eingebunden, die die betreffenden Stellen zersemmelt hat oder das Forum müsste aktualisiert werden (sofern es nicht bereits das 3.0.7-PL1 ist).

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 14:17
von Holger
Es ist 3.0.7-PL1
Ich finde die Funktion, die den Whitespace entfernt sowieso überflüssig (wenn das der Grund ist).
In all den Dateien sind Mods eingebaut. Ganz sicher.

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 14:24
von Holger
message_parser.php
phpBB3

Code: Alles auswählen

if (!class_exists('bbcode'))
{
	include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
}
Meine

Code: Alles auswählen

if (!class_exists('bbcode'))
{
	include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
}

if (!function_exists('acronym_pass'))
{
	include($phpbb_root_path . 'includes/functions_acronym.' . $phpEx);
}
phpBB3

Code: Alles auswählen

		$this->filename_data['filecomment'] = utf8_normalize_nfc(request_var('filecomment', '', true));
Meine

Code: Alles auswählen

		$filecomment = str_replace('fileupload','filecomment',$form_name);
		$this->filename_data['filecomment'] = utf8_normalize_nfc(request_var($filecomment, '', true));
phpBB3

Code: Alles auswählen

			$this->warn_msg[] = $error_msg;
Meine

Code: Alles auswählen

			$this->warn_msg[] = $_FILES[$form_name]['name']." => ".$error_msg;

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 14:28
von Holger
includes/functions_posting.php
phpBB3

Code: Alles auswählen

	$result = $db->sql_query($sql);
Meine

Code: Alles auswählen

//-- mod: Prime Trash Bin (Posts) -------------------------------------------//
// When doing topic review, get only posts that aren't mock-deleted.
	include ($phpbb_root_path . 'includes/prime_trash_bin.' . $phpEx);
	if (stifle_topics_enabled())
	{
		$sql = str_replace('AND u.user_id = p.poster_id', 'AND u.user_id = p.poster_id AND p.post_deleted_time = 0', $sql);
	}
//-- end: Prime Trash Bin (Posts) -------------------------------------------//

	$result = $db->sql_query($sql);
phpBB3

Code: Alles auswählen

		// Display not already displayed Attachments for this post, we already parsed them. ;)
Meine

Code: Alles auswählen

//-- mod: Prime Trash Bin (Posts) -------------------------------------------//
// Set up what we're going to display for the deleted message (topic review).
		if (!empty($row['post_deleted_time']))
		{
			include ($phpbb_root_path . 'includes/prime_trash_bin.' . $phpEx);
			set_stifled_post_template_vars($row, $message, $post_subject, ($blockname = $mode . '_row'));
		}
//-- end: Prime Trash Bin (Posts) -------------------------------------------//
phpBB3

Code: Alles auswählen

	// Collect the necessary information for updating the tables
Meine

Code: Alles auswählen

	// Download MOD 6 - Drop Traffic on Topic/Post delete
	if ($config['dl_drop_traffic_postdel'] && !$config['dl_traffic_off'])
	{
		if ($post_mode == 'delete_topic')
		{
			$drop_traffic_amount = $config['dl_newtopic_traffic'];
		}
		else
		{
			$drop_traffic_amount = $config['dl_reply_traffic'];
		}

		$sql = "SELECT user_traffic FROM " . USERS_TABLE . "
			WHERE user_id = " . $data['poster_id'];
		$result = $db->sql_query($sql);

		$row = $db->sql_fetchrow($result);
		$user_traffic = $row['user_traffic'];
		$db->sql_freeresult($result);

		if ($user_traffic < $drop_traffic_amount)
		{
			$user_traffic = 0;
		}
		else
		{
			$user_traffic -= $drop_traffic_amount;
		}

		$sql = "UPDATE " . USERS_TABLE . "
			SET user_traffic = $user_traffic
			WHERE user_id = " . $data['poster_id'];
		$db->sql_query($sql);
	}
	// Download MOD 6 - Drop Traffic on Topic/Post delete
phpBB3

Code: Alles auswählen

	// Submit new post
Meine

Code: Alles auswählen

	// Post Image Upload (c) 2009 by OXPUS
	$sql_data[POSTS_TABLE]['sql'] = array_merge($sql_data[POSTS_TABLE]['sql'], array(
		'no_piu'	=> intval($data['no_piu']),
	));
	// Post Image Upload (c) 2009 by OXPUS
phpBB3

Code: Alles auswählen

	// we need to update the last forum information
Meine

Code: Alles auswählen

// Download MOD 6
	if ($config['dl_enable_post_dl_traffic'] && !$config['dl_traffic_off'])
	{
		if (!$config['dl_delay_post_traffic'] || ((time() - $user->data['user_regdate']) / 84600) > $config['dl_delay_post_traffic'])
		{
			$dl_traffic = 0;
			if ($mode == 'newtopic')
			{
				$dl_traffic = $config['dl_newtopic_traffic'];
			}
			else if ($mode == 'reply' || $mode == 'quote')
			{
				$dl_traffic = $config['dl_reply_traffic'];
			}

if (intval($dl_traffic) > 0)
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_traffic = user_traffic + $dl_traffic
WHERE user_id = {$user->data['user_id']}";
$db->sql_query($sql);
}
}
}
// Download MOD 6

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 14:35
von Holger
posting.php
phpBB3

Code: Alles auswählen

// Start session management
Meine

Code: Alles auswählen

// BEG MyCalendar3 MOD
include($phpbb_root_path . 'includes/functions_mycalendar3.' . $phpEx);
// END MyCalendar3 MOD
// Start session management
phpBB3

Code: Alles auswählen

if (!$is_authed)
Meine

Code: Alles auswählen

// Post Image Upload (c) 2009 by OXPUS
if (($mode == 'edit' && $user->data['user_id'] == $post_data['poster_id']) || $mode == 'quote' || $mode == 'reply' || $mode == 'post')
{
	$no_piu_perm = true;
}
else
{
	$no_piu_perm = false;
}
// Post Image Upload (c) 2009 by OXPUS

if (!$is_authed)
phpBB3

Code: Alles auswählen

	handle_post_delete($forum_id, $topic_id, $post_id, $post_data);
Meine

Code: Alles auswählen

//-- mod: Prime Trash Bin (Posts) -------------------------------------------//
	include($phpbb_root_path . 'includes/prime_trash_bin_2.' . $phpEx);
	handle_post_stifle($forum_id, $topic_id, $post_id, $post_data);
//-- end: Prime Trash Bin (Posts) -------------------------------------------//
	handle_post_delete($forum_id, $topic_id, $post_id, $post_data);
phpBB3

Code: Alles auswählen

	if ($config['allow_topic_notify'] && $user->data['is_registered'])
Meine

Code: Alles auswählen

	// Begin : Anti all uppercase
	if ($config['aau_enable'] && !$auth->acl_get('u_ignore_uppercase'))
	{
		include($phpbb_root_path . 'includes/functions_lowercase.' . $phpEx);
		uppercase_control($message_parser->message, $post_data['post_subject'], $error);
	}
	// End : Anti all uppercase
	if ($config['allow_topic_notify'] && $user->data['is_registered'])
phpBB3

Code: Alles auswählen

	if ($submit)
Meine

Code: Alles auswählen

	// Post Image Upload (c) 2009 by OXPUS
	$no_piu				= ( isset($_POST['no_piu']) && $no_piu_perm ) ? true : false;
	$no_piu				= (!$no_piu_perm) ? $post_data['no_piu'] : $no_piu;
	// Post Image Upload (c) 2009 by OXPUS

	if ($submit)
phpBB3

Code: Alles auswählen

	// Parse Attachments - before checksum is calculated
	$message_parser->parse_attachments('fileupload', $mode, $forum_id, $submit, $preview, $refresh);
Meine

Code: Alles auswählen

	// Parse Attachments - before checksum is calculated
	foreach ($_FILES as $key => $value) {
		$message_parser->parse_attachments($key, $mode, $forum_id, $submit, $preview, $refresh);
	}
phpBB3

Code: Alles auswählen

	$post_data['poll_last_vote'] = (isset($post_data['poll_last_vote'])) ? $post_data['poll_last_vote'] : 0;
Meine

Code: Alles auswählen

//-- mod: Prime Subject Check -----------------------------------------------//
	include($phpbb_root_path . 'includes/prime_subject_check.' . $phpEx);
	$prime_subject_check->look_for_posts();
//-- end: Prime Subject Check -----------------------------------------------//

	$post_data['poll_last_vote'] = (isset($post_data['poll_last_vote'])) ? $post_data['poll_last_vote'] : 0;
phpBB3

Code: Alles auswählen

			// The last parameter tells submit_post if search indexer has to be run
			$redirect_url = submit_post($mode, $post_data['post_subject'], $post_data['username'], $post_data['topic_type'], $poll, $data, $update_message, ($update_message || $update_subject) ? true : false);
Meine

Code: Alles auswählen

			// Post Image Upload (c) 2009 by OXPUS
			$data['no_piu'] = $no_piu;
			// Post Image Upload (c) 2009 by OXPUS

			// The last parameter tells submit_post if search indexer has to be run
			$redirect_url = submit_post($mode, $post_data['post_subject'], $post_data['username'], $post_data['topic_type'], $poll, $data, $update_message, ($update_message || $update_subject) ? true : false);

			// BEG MyCalendar3 MOD
			mycal_submit_event($mode, $forum_id, $data['topic_id'], $post_id);
			// END MyCalendar3 MOD
phpBB3

Code: Alles auswählen

				meta_refresh(3, $redirect_url);
Meine

Code: Alles auswählen

				redirect($redirect_url);
				meta_refresh(3, $redirect_url);
phpBB3

Code: Alles auswählen

if ($mode == 'edit')
Meine

Code: Alles auswählen

// Post Image Upload (c) 2009 by OXPUS
if ($mode == 'edit' && $user->data['user_id'] != $post_data['poster_id'])
{
	$hidden_form_fields .= '<input type="hidden" name="no_piu" value="' . intval($post_data['no_piu']) . '">';
}
// Post Image Upload (c) 2009 by OXPUS

//-- mod: Prime Subject Check -----------------------------------------------//
if (!class_exists('prime_subject_check'))
{
	include($phpbb_root_path . 'includes/prime_subject_check.' . $phpEx);
}
$prime_subject_check->setup_ajax();
$prime_subject_check->add_bypass();
//-- end: Prime Subject Check -----------------------------------------------//

if ($mode == 'edit')
phpBB3

Code: Alles auswählen

// Start assigning vars for main posting page ...
Meine

Code: Alles auswählen

// Post Image Upload (c) 2009 by OXPUS
if ($mode == 'post' || $mode == 'reply' || ($mode == 'edit' && $user->data['user_id'] == $post_data['poster_id']))
{
	$no_piu = (isset($post_data['no_piu']) && $post_data['no_piu']) ? $post_data['no_piu'] : 0;

	$template->assign_var('S_NO_PIU_PERM', true);

	if ($no_piu)
	{
		$s_no_piu = ' checked="checked"';
	}
	else
	{
		$s_no_piu = '';
	}
}
// Post Image Upload (c) 2009 by OXPUS

// Start assigning vars for main posting page ...
phpBB3

Code: Alles auswählen

	'S_FORM_ENCTYPE'			=> $form_enctype,
Meine

Code: Alles auswählen

	'S_FORM_ENCTYPE'			=> $form_enctype,
	'S_NO_PIU'					=> $s_no_piu,
phpBB3

Code: Alles auswählen

page_header($page_title, false);
Meine

Code: Alles auswählen

page_header($page_title, false);

// BEG MyCalendar3 MOD
if ($user->data['is_registered'])
{
	mycal_generate_entry($mode, $forum_id, $topic_id, $post_id, $template);
}
// END MyCalendar3 MOD

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 16:11
von oxpus
Jetzt kenne ich zwar den von dir verbauten Acronym MOD nicht, aber wenn er die Beiträge formatiert, dann ersetzt und erst danach zum Speichern weitergibt, könnten hier Links in Mitleidenschaft gezogen werden.
Ansonsten kann ich zunächst keine weiteren Stellen sehen, die direkt den Beitragstext manipulieren.

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 16:15
von Holger
Tja, das ist der Lexicon/Acronym Mod von "reh":
http://www.phpbb.com/community/viewtopi ... it=acronym
Ich habe aber die Akronyme im forum ausgeschaltet und nutze nur die Lexikon-Funktion.
Trotzdem werden die Links zersägt.

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 17:47
von AmigaLink
Ich glaube nicht das diese Lexicon MOD dran schuld ist. Und wenn doch, dann gibt's ja bald eine neue. :D

Ich muss sagen ich hab da viel eher deine SEO MOD in verdacht. Vorausgesetzt natürlich das diese MOD einen Teil hat der links in Postings anpasst.

Anders ausgedrückt:
Was hast du alles verbaut das Beiträge manipulieren könnte?
Und was hast du drin das im BBCode parser rum pfuscht?

Re: Links werden "zerstört"

Verfasst: Di 27.Apr, 2010 18:00
von oxpus
Also diesen Teil der Anleitung hast du nicht installiert?

Code: Alles auswählen

will man in allen geparstenTexten Acronyme, dann:

öffne functions_content.php

finde
$bbcode->bbcode_second_pass($text, $uid);

insert before
//----------------------------------------------------------------------
// Acronym MOD - Begin Code Alteration
//	  if ($config['allow_acronym'])
	  {
	  	$text = acronym_pass($text);
	  }
// Acronym MOD - End Code Alteration
//----------------------------------------------------------------------
Und in deiner viewtopic.php ist dieser Code ebenfalls nicht enthalten??

Code: Alles auswählen

 if ($config['allow_acronym']) 
  {
    $message = acronym_pass($message);
  }
Nachtrag:
Wenn du das Verhalten, angezeigte Linktitel zu kürzen komplett abschalten willst, dann öffne die Datei includes/functions_content.php und ersetze die Zeile

Code: Alles auswählen

	$short_url = (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
durch

Code: Alles auswählen

	$short_url = $url;

Re: Links werden "zerstört"

Verfasst: Mi 28.Apr, 2010 11:24
von Holger
Karsten, ich habe den Mod komplett installiert.
Nu hast Du geschrieben:
oxpus hat geschrieben:Da können mehrere Dateien eine Rolle spielen:
-posting.php
-includes/functions_posting.php
-includes/message_parser.php
Deshalb habe ich nur die Unterschiede dieser Dateien gezeigt.

Ich werde mal die function_content.php anpassen.
Danke!

Gruss
Holger

Re: Links werden "zerstört"

Verfasst: Mi 28.Apr, 2010 11:28
von Holger
Ok, die Änderung in functions_content.php hat bewirkt, dass der Link heile bleibt.

Re: Links werden "zerstört"

Verfasst: Mi 28.Apr, 2010 12:34
von oxpus
Zumindest wird der Link bei der Anzeige nicht verändert, was die Funktion in der functions_content.php ja auch vorher nur tun sollte...

Re: Links werden "zerstört"

Verfasst: Mi 28.Apr, 2010 15:40
von AmigaLink
Holger hat geschrieben:Ok, die Änderung in functions_content.php hat bewirkt, dass der Link heile bleibt.
oxpus hat geschrieben:Zumindest wird der Link bei der Anzeige nicht verändert, was die Funktion in der functions_content.php ja auch vorher nur tun sollte...
Bleibt die Frage: "Warum wurden die Links zerstört?"
Die -von oxpus- vorgeschlagene Änderung, betrifft eine Funktion die (wie er auch schreibt) eigentlich nur bei der Beitragsanzeige eingesetzt wird. Warum wird sie bei Holger schon beim Speichern angewandt?
Da ist doch was Faul! ^6

Re: Links werden "zerstört"

Verfasst: Mi 28.Apr, 2010 15:41
von Holger
Ja, ich weiss es nicht!
Klar ist da was faul! ^1

Re: Links werden "zerstört"

Verfasst: Mi 28.Apr, 2010 15:53
von oxpus
Wenn durch irgendwas oder irgendeine MOD beim Speichern nochmal die Beiträge über den Parser laufen und dabei die Funktion "make_clickable" ausgelöst wird, schreibt das Forum die Links verkürzt in die Datenbank. Damit sind diese dann zerstört.
Da nun diese Funktionalität ja abgeschaltet ist, passiert das nun nicht mehr.
Nur: Wo und wann wird die Funktion neben der Aufbereitung der Beiträge zur Anzeige noch verwendet?
Das kann ich so ja nicht beurteilen...

Re: Links werden "zerstört"

Verfasst: Mi 28.Apr, 2010 17:37
von AmigaLink
Klar kannst du das nicht beurteilen. :)
Ich wollte das nur mal erwähnt haben, damit Holger das im Auge behält und sich Gedanken macht wie es zu der Fehlfunktion kommt.
Denn das deaktivieren der Kürzungsfunktion behebt ja nicht den eigentlichen Fehler, sondern verhindert nur das die Links zerstört werden. ;)

Was mir auch zu denken gibt, ist die Tatsache das -wenn make_clickable() vor dem Speichern ausgelöst wird- der zu speichernde Text HTML Code enthalten müsste. Das scheint aber nicht der Fall zu sein. ^5
Wo zum Teufel ist der HTML Code hin verschwunden? :eek:

Re: Links werden "zerstört"

Verfasst: Mi 28.Apr, 2010 17:40
von Holger
Fragen über Fragen! ??

Ich wüsste nicht, welcher Mod das auslösen könnte. Ich habe eigentlich keinen Mod Eingebaut, der den Text verändert ... ich werde nochmal in mich gehen!