Anchor Hack

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
einheitlix
Mitglied
Beiträge: 58
Registriert: 10.07.2003 01:24
Wohnort: Siegen
Kontaktdaten:

Anchor Hack

Beitrag von einheitlix »

Hi,

ich würde meinen Usern gerne die Möglichkeit geben, Anchors in ihre Postings einzufügen und dann auch zu verlinken. Also das ist nützlich, wenn fleißige User FAQs und so schreiben wollen ;)

z.B. so:


[target=#question1]Bla bla bla bla bla?[/target]
[target=#question2]Bla blub bla?[/target]
... (weitere Fragen in der Übersicht)

Und dann die Antworten:

[anchor=question1]Bla bla bla bla bla?[/anchor]
Bla bla bla bla, laber, bla!

[anchor=question2]Bla blub bla?[/anchor]
Blub blabbeli dabbeldidu.


...wobei [target] das gleiche wie [url] sein soll, nur dass das Target _self anstatt _blank (wie bei [url]) sein soll. Man will ja schließlich nicht für jede Frage auf die man klickt ein neues Fenster bekommen ;)

Den [target] Hack habe ich schon installiert. Den gibt es hier:
http://www.phpbbhacks.com/download.php?id=258

Einen [anchor] Hack habe ich auch selbst schon programmiert, funktionier einwandfrei.

Jetzt bräuchte ich nur noch eine Erweiterung zum [target] Hack, das packe ich selbst irgendwie nicht. In der includes/bbcode.php muss man da folgendes ändern:

Code: Alles auswählen

# 
#-----[ ACTION: find ]-------------------------------- 
# 

	$bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']);
	$bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\2', $bbcode_tpl['url4']);

# 
#-----[ ACTION: add below ]--------------------------- 
# 

	$bbcode_tpl['target1'] = str_replace('{URL}', '\\1\\2', $bbcode_tpl['target']);
	$bbcode_tpl['target1'] = str_replace('{DESCRIPTION}', '\\1\\2', $bbcode_tpl['target1']);
	
	$bbcode_tpl['target2'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['target']);
	$bbcode_tpl['target2'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['target2']);
	
	$bbcode_tpl['target3'] = str_replace('{URL}', '\\1\\2', $bbcode_tpl['target']);
	$bbcode_tpl['target3'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['target3']);
	
	$bbcode_tpl['target4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['target']);
	$bbcode_tpl['target4'] = str_replace('{DESCRIPTION}', '\\2', $bbcode_tpl['target4']);


# 
#-----[ ACTION: find ]-------------------------------- 
# 

	// [email]user@domain.tld[/email] code..
	$patterns[5] = "#\[email\]([a-z0-9\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
	$replacements[5] = $bbcode_tpl['email'];


# 
#-----[ ACTION: add below ]--------------------------- 
# 

	// [target]xxxx://www.phpbb.com[/target] code..
	$patterns[6] = "#\[target\]([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\[/target\]#si";
	$replacements[6] = $bbcode_tpl['target1'];

	// [target]www.phpbb.com[/target] code.. (no xxxx:// prefix).
	$patterns[7] = "#\[target\]([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\[/target\]#si";
	$replacements[7] = $bbcode_tpl['target2'];

	// [target=xxxx://www.phpbb.com]phpBB[/target] code..
	$patterns[8] = "#\[target=([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\](.*?)\[/target\]#si";
	$replacements[8] = $bbcode_tpl['target3'];

	// [target=www.phpbb.com]phpBB[/target] code.. (no xxxx:// prefix).
	$patterns[9] = "#\[target=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\](.*?)\[/target\]#si";
	$replacements[9] = $bbcode_tpl['target4'];
...wie ihr seht, werden da nur Codes der 4 folgenden Typen akzeptiert:
[target]xxxx://www.phpbb.com[/target]
[target]www.phpbb.com[/target]
[target=xxxx://www.phpbb.com]phpBB[/target]
[target=www.phpbb.com]phpBB[/target]

Ich hätte jetzt aber halt noch gerne einen Code der Form
[target=#question1]Irgendein Text[/target]

Das müssten das noch nur ein paar Zeilen zusätzlich sein, wenn ich das richtig sehe. Das was ich an der zweiten Stelle einfügen müsste ist mir schon klar:

Code: Alles auswählen

	// [target=#phpbb]phpBB[/target] code.. (no xxxx:// prefix).
	$patterns[] = "#\[target=(\#[a-z0-9&\-_.]+)\](.*?)\[/target\]#si";
	$replacements[] = $bbcode_tpl['target5'];
...weil ich nämlich in meinem Anchor Hack den regulären Ausdrück für Anchors auch nur so definiert habe (also "([a-z0-9&\-_.]+)"). Ich weiss ja dass prinzipiell mehr geht ;)

Nur bei der ersten Stelle ist mir nicht ganz klar was ich einfügen muss. Ich verstehe auch den Sinn von den ganzen \\1, \\2, usw. irgendwie nicht. Kann mich jemand aufklären / sagen was da hinmuss? :D

Danke schonmal...
Benutzeravatar
Henne
Ehemaliges Teammitglied
Beiträge: 4520
Registriert: 04.01.2002 01:00
Wohnort: Lage (Lippe)
Kontaktdaten:

Beitrag von Henne »

einheitlix
Mitglied
Beiträge: 58
Registriert: 10.07.2003 01:24
Wohnort: Siegen
Kontaktdaten:

Beitrag von einheitlix »

Super, genausowas habe ich gesucht :)

Aber die Seite wo der Hack liegen soll ist down (http://www.netclectic.com/dev_forum/viewtopic.php?t=173) :(
Hat den jemand irgendwo rumfliegen?

Danke!

PS. Etwas späte Antwort, hatte in den letzten Tagen kaum Zeit für den Compi :D
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“