Seite 1 von 1

highlight in der viewtopic funzt nicht

Verfasst: 04.03.2005 21:38
von Gumfuzi
Hallo!

Ich versuche es mal zu beschreiben:

Wenn ich bei der Forumsuche irgendeinen Begriff suche und das Ergebnis in Threads anzeigen lassen will, dann kann ich per Klick auf den Threadnamen in den Thread wechseln, wo mir dann farbig der Suchbegriff zusätzlich angezeigt wird.

Seit einiger Zeit (ich weiss leider nicht mehr, bei welchem Mod bzw. Update das zum ersten mal auftrat) kommt dann nur mehr der Header(siehe http://www.deskmodder.de/phpBB2/viewtop ... light=desk )
Rufe ich den Thread ohne "&highlight=desk" auf, dann funzt er.

Ich habe schon testweise die Updates bis zur 2.0.8er Version (nur bei der Viewtopic) rückgängig gemacht, aber ohne Erfolg. Auch die .htacces habe ich testweise rausgenommen (rewrite-Mod der viewtopic; highlight). Den crack-track-mod habe ich auch schon testweise aus der viewtopic entfernt - auch negativ.

Wo muss ich nach dem Fehler suchen? (ist ja immer schwer, wenn keine Fehlermeldung kommt, aber es trotzdem nicht funzt ;) )

Hier der Teil der viewtopic.php:

Code: Alles auswählen

//
// Was a highlight request part of the URI?
//
/*
$highlight_match = $highlight = '';
if (isset($HTTP_GET_VARS['highlight']))
{
	// Split words and phrases
	$words = explode(' ', trim(htmlspecialchars($HTTP_GET_VARS['highlight'])));

	for($i = 0; $i < sizeof($words); $i++)
	{
*/
// 
// Was a highlight request part of the URI? 
// 
$highlight_match = $highlight = ''; 
if (isset($HTTP_GET_VARS['highlight'])) 
{ 
   // Split words and phrases 
   $words = explode(' ', trim(htmlspecialchars($HTTP_GET_VARS['highlight'])));

   for($i = 0; $i < sizeof($words); $i++) 
   { 
		if (trim($words[$i]) != '')
		{
			$highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', phpbb_preg_quote($words[$i], '#'));
		}
	}
	unset($words);

	$highlight = urlencode($HTTP_GET_VARS['highlight']);
	$highlight_match = phpbb_rtrim($highlight_match, "\\");
}
bzw. hier die ganze viewtopic.php:
Klick

Wäre klasse, wenn mir da jemand helfen bzw. einen Hinweis geben könnte. Danke!

Verfasst: 04.03.2005 21:42
von roum
Ersetze mal deinen geposteten Teil mit diesem (der ist aus der original phpBB).

Code: Alles auswählen

//
// Was a highlight request part of the URI?
//
$highlight_match = $highlight = '';
if (isset($HTTP_GET_VARS['highlight']))
{
	// Split words and phrases
	$words = explode(' ', trim(htmlspecialchars($HTTP_GET_VARS['highlight'])));

	for($i = 0; $i < sizeof($words); $i++)
	{
		if (trim($words[$i]) != '')
		{
			$highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', phpbb_preg_quote($words[$i], '#'));
		}
	}
	unset($words);

	$highlight = urlencode($HTTP_GET_VARS['highlight']);
	$highlight_match = phpbb_rtrim($highlight_match, "\\");
}
Bei dir ist da ein Teil doppelt vorhanden :wink:

Verfasst: 04.03.2005 21:45
von Gumfuzi
funzt auch nicht.

BTW: hatte ja den ersten Teil mit "/*" ausgeklammert

Verfasst: 06.03.2005 11:20
von Gumfuzi
*vorsichtigbump*

Verfasst: 06.03.2005 11:39
von PhilippK
Poste doch bitte mal deine viewtopic.php (KB:datei)

Gruß, Philipp

Verfasst: 06.03.2005 12:08
von Gumfuzi
Habe ich schon (im ersten Posting)

Verfasst: 06.03.2005 12:40
von PhilippK
Gumfuzi hat geschrieben:Habe ich schon (im ersten Posting)
Ups - vor lauter Code übersehen...

Habe jetzt aber direkt nichts finden können. Kannst du mal testweise deine Version durch ein Original austauschen?

Gruß, Philipp

Verfasst: 06.03.2005 13:17
von Gumfuzi
Hi Philipp!

damit funzt es.

Wei gehe ich nun am besten vor, um die Position des Fehlers zu finden?

Verfasst: 06.03.2005 13:30
von PhilippK
Ah - das dürfte es sein:

Code: Alles auswählen

		$message = str_replace('"', '"', substr(@preg_replace('#(>(((?>([^><]+|(?R)))*)<))#se', "@preg_replace('#b(" . $highlight_match . ")b#i', '<span style=\"color:#" . $theme['fontcolor3'] . "\"><b>\\1</b></span>', '\0')", '>' . $message . '<'), 1, -1));
ersetzen durch

Code: Alles auswählen

		$message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace('#\b(" . $highlight_match . ")\b#i', '<span style=\"color:#" . $theme['fontcolor3'] . "\"><b>\\\\1</b></span>', '\\0')", '>' . $message . '<'), 1, -1));
Gruß, Philipp

Verfasst: 06.03.2005 13:34
von Gumfuzi
Jep, das war's!

Vielen Dank, Philipp!!!!!!
*megafreu*