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'];
[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'];

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?

Danke schonmal...