BBCode
Aus PHP-Fusion Wiki
PHP-Fusion unterstützt wie viele andere Webforen den Quasi-Standard BBCode. Dies ist ein stark an HTML angelehnter Auszeichnungscode um Beiträge zu formatieren. Dieser Code wird manchmal auch UBB bezeichnet, da das Ultimate Bulletin Board (UBB) die erste Webforensoftware war, die diesen Code eingeführt hatte. Mehr Informationen über BBCode findest du in der Wikipedia.
Inhaltsverzeichnis |
[Bearbeiten] BBCodes
PHP-Fusion unterstützt die folgenden BBCodes im Forum, in den Kommentaren, in der Signatur und bei vielen Erweiterungen.
| Funktion | BBCode | Beispiel |
|---|---|---|
| fett | [b]fett[/b]
| fett |
| kursiv | [i]kursiv[/i]
| kursiv |
| unterstrichen | [u]unterstrichen[/u]
| unterstrichen |
| zentriert | [center]zentriert[/center]
| |
| kleiner Text | [small]kleiner Text[/small]
| kleiner Text |
| Links, Verweise | [url]http://www.example.com[/url][url=http://www.example.com]Text[/url]
| http://www.example.com Text |
| e-Mail Links | [mail]example@example.com[/mail][mail=example@example.com]Text[/mail]
| example@example.com Text |
| Bilder | [img]http://www.example.com/banner.gif[/img]
| |
| Zitate | [quote]Zitat[/quote]
| |
| Quellcode | [code]Quellcode[/code]
|
[Bearbeiten] Weitere BBCodes hinzufügen
Neben den bereits vorhandenen BBCodes kann man auch eigene BBCodes erstellen. Grundkenntnisse von regulären Ausdrücken (RegExp oder Regex) sind hierbei von Vorteil. Informationen hierzu gibt es u.a. bei www.regenechsen.de.
[Bearbeiten] Aufbau der Funktion parseubb()
Die Funktion parseubb() nutzt die PHP-Funktion preg_replace.
Dabei wird ein Suchmuster (1. Teil) in ein anderes Muster (2. Teil) transferiert und eine zu durchsuchende Zeichenkette (3. Teil) mitgegeben.
[Bearbeiten] Beispiel
Der bereits vorhandene BBCode für den Fettdruck lautet
$text = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $text);
Das Suchmuster ist
[b]Inhalt[/b]
Transferiert wird dann in
<b>Inhalt</b>
Die Zeichenkette selber ist in der Variablen $text gespeichert.
Ein neuer BBCode-Tag video könnte dann bspw. so aussehen:
$text = preg_replace('#\[video\](.*?)\[/video\]#si', '<object classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\'> <param name=\'movie\' value=\'\1\'></param> <param name=\'wmode\' value=\'transparent\'></param> <embed src=\'\1\' type=\'application/x-shockwave-flash\' wmode=\'transparent\'></embed> </object>', $text);
Das Beispiel ohne Zeilenumbrüche anwenden, die Umbrüche dienen lediglich der besseren Lesbarkeit
Der erste Teil definiert den BBCode-Tag, in diesem Fall [video], der zweite Teil dient zum Aufruf des Videos. Um den BBCode anzuwenden, ist er wie folgt aufzurufen:
[video]URL des Videos[/video]
