Seite 1 von 1

Automatische Verweise/Links

Verfasst: 10.01.2005 16:56
von chris3007
Hallo zusammen,

ich suche einen Mod, mit dem ich automatische Querverweise bzw. Links anlegen kann.

Wenn z.b. innerhalb des Forums "Hundefutter" geschrieben wird, soll das Wort automatisch mit einem Link in die ensprechende Rubrik unseres Onlineshops führen.

Gibt es sowas schon bzw. kann mir da jemand helfen?

Viele Grüße
Chris

Verfasst: 10.01.2005 17:12
von BZebra
Schau mal bei bananeweizen.de (Quicklinks).
http://217.160.138.71/development/phpBB ... c.php?t=40

Verfasst: 10.01.2005 17:21
von chris3007
vielen dank, werde ich gleich mal testen

gruß
chris

Verfasst: 10.01.2005 17:50
von chris3007
Ok, das klapp soweit.

Könnte mir jemand helfen, die Knowledge Base so umzuschreiben, dass der Quicklink-Mod auch da funktioniert.

So wie ich das sehe muss in der kb.php etwas geändert werden.

Ich habe schon daran rumgebastelt, es passiert aber nichts.

Gruß
Chris

Verfasst: 11.01.2005 10:36
von chris3007
Ok, habe jetzt selbst eine Lösung gefunden. Zwei mal hinschauen lohnt sich...

So sieht die Originaländerung der viewtopic aus:

Code: Alles auswählen

#-----[ OPEN ]------------------------------------------
#
viewtopic.php
#
#-----[ FIND ]------------------------------------------
#
$message = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1));
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
	$sql = "SELECT word, replacement
		FROM  " . QUICKLINKS_TABLE;
	if( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not get quicklinks from database', '', __LINE__, __FILE__, $sql);
	}
	
	if ( $row = $db->sql_fetchrow($result) )
	{
		do 
		{
			$quicklink_word[] = '#\b(' . $row['word'] . ')\s#i';
			$quicklink_url[] = '<a href="' . $row['replacement'] . '" class="postlink">' . $row['word'] . '</a> ';
			$quicklink_word[] = '#\s(' . $row['word'] . ')\b#i';
			$quicklink_url[] = ' <a href="' . $row['replacement'] . '" class="postlink">' . $row['word'] . '</a>';
		}
		while ( $row = $db->sql_fetchrow($result) );
	}
	if (count($quicklink_word)) {
		$message = str_replace('\"', '"', substr(preg_replace('#(\µ(((?>([^µ§]+|(?R)))*)\§))#se', "preg_replace(\$quicklink_word, \$quicklink_url, '\\0')", 'µ' . $message . '§'), 1, -1));
	}
und so sieht die Änderung in der kb.php für die KNowledge Base aus, dann funktioniert es auch da:

Code: Alles auswählen

#-----[ OPEN ]------------------------------------------
#
kb.php
#
#-----[ FIND ]------------------------------------------
#
		$article = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $article . '<'), 1, -1));
	}
#
#-----[ AFTER, ADD ]------------------------------------------
#
	$sql = "SELECT word, replacement
		FROM  " . QUICKLINKS_TABLE;
	if( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not get quicklinks from database', '', __LINE__, __FILE__, $sql);
	}
	
	if ( $row = $db->sql_fetchrow($result) )
	{
		do 
		{
			$quicklink_word[] = '#\b(' . $row['word'] . ')\s#i';
			$quicklink_url[] = '<a href="' . $row['replacement'] . '" class="postlink">' . $row['word'] . '</a> ';
			$quicklink_word[] = '#\s(' . $row['word'] . ')\b#i';
			$quicklink_url[] = ' <a href="' . $row['replacement'] . '" class="postlink">' . $row['word'] . '</a>';
		}
		while ( $row = $db->sql_fetchrow($result) );
	}
	if (count($quicklink_word)) {
		$article = str_replace('\"', '"', substr(preg_replace('#(\µ(((?>([^µ§]+|(?R)))*)\§))#se', "preg_replace(\$quicklink_word, \$quicklink_url, '\\0')", 'µ' . $article . '§'), 1, -1));
	}
Also einfach $message in $article ändern.

Gruß
Chris

Verfasst: 21.06.2006 14:29
von Lago
Hallo Chris,
stehe vor gleichem Background - nur kann ich beim besten Willen deinen Ansatz (->Find) in der kb.php nicht lokalisieren ???
chris3007 hat geschrieben:Ok, habe jetzt selbst eine Lösung gefunden. Zwei mal hinschauen lohnt sich...

Code: Alles auswählen

#-----[ OPEN ]------------------------------------------
#
kb.php
#
#-----[ FIND ]------------------------------------------
#
		$article = str_replace('"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $article . '<'), 1, -1));
	}
Gruß
Chris
Habs dort mal auf Verdacht vor: // Start KB SCRIPT eingefügt, es rührt sich jedoch nichts. Wäre nett, wenn Du hierzu noch etwas erläutern könntest.
Dank im Voraus für die Mühe.

Verfasst: 29.06.2006 13:32
von Dominik Müller
Wo kann man den Quicklinks Mod denn jetzt downloaden? Der obige Link scheint tot zu sein...