Parseubb
Aus PHP-Fusion Wiki
Die Funktion parseubb() dient in PHP-Fusion dazu, BB-Codes in HTML-Elemente umzuwandeln.
Inhaltsverzeichnis |
[Bearbeiten] Funktion und Parameter
parseubb($text);
[Bearbeiten] $text
Der String der in ein HTML-Element gewandelt werden soll.
[Bearbeiten] Liste der BB-Code-Elemente
- [b]
- Fettdruck
- [i]
- Kursivdruck
- [u]
- den String unterstreichen
- [center]
- den String zentrieren
- [url], [url=]
- eine URL angeben. Dabei kann auch Kurztext verwendet werden, indem die URL selber im URL-Tag angegeben wird und zwischen den Tags ein freier Text.
- [mail], [mail=]
- eine eMail-Adresse angeben. Dabei kann auch Kurztext verwendet werdenm, indem die eMail-Adresse selber im Mail-Tag angegeben wird und zwischen den Tags ein freier Text.
- [small]
- der Text wird kleiner dargestellt. Die Größe ist in der style.css definiert (in der Klasse small)
- [color=]
- eine Farbe kann angegeben werden. Gültige Farben sind
- black
- blue
- brown
- cyan
- gray
- green
- lime
- maroon
- navy
- olive
- orange
- purple
- red
- silver
- violet
- white
- yellow
- [flash width= height=]
- eine Flash-Animation anzeigen. Als Parameter können die Breite und die Höhe mit angegeben werden. Werden diese nicht angegeben, wird die benötigte Information aus dem Flash-Element ausgelesen.
- [img]
- ein Bild anzeigen. Gültige Formate für Grafiken sind
- jp(e)g
- gif
- png
- [quote]
- ein Posting zitieren
- [code]
- ein Stück Code anzeigen. Der Tag ist aber mit Vorsicht zu geniessen, da der komplette Block noch die parsesmileys-Funktion durchläuft und dort Zeichen wie ;) oder :@ in Smileys umgewandelt werden.
[Bearbeiten] Beispiele
$text = "PHP-Fusion ist aber ein [b]suppppi[/b] CMS!"; echo parseubb($text);
Ausgabe: "PHP-Fusion ist aber ein suppppi CMS!"
$text = "PHP-Fusion hat jetzt auch ein [url=http://wiki.php-fusion-de.com]Wiki[/url]."; echo parseubb($text);
Ausgabe: "PHP-Fusion hat jetzt auch ein Wiki."
[Bearbeiten] Modifikationen
[Bearbeiten] Eingebundene Bilder proportional verkleinern
Um sehr große Bild die mit dem BBCode img in einen Beitrag eingefügt werden, proportional zu verkleinern, kann man die CSS Eigenschaften max-height und max-width nutzen. In dem folgenden Beispiel wird der Code so angepasst, das alle Bilder die Breiter oder Höher als 500 Pixel sind, proportional verkleinert dargestellt werden. Aber Obacht: der Internet Explorer kennt diese beiden Eigenschaften erst ab Version 7!
Suche in der maincore.php den folgenden Code:
$text = preg_replace('#\[color=(black|blue|brown|cyan|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|violet|white|yellow)\](.*?)\[/color\]#si', '<span style=\'color:\1\'>\2</span>', $text); $text = preg_replace('#\[flash width=([0-9]*?) height=([0-9]*?)\]([^\s\'\";:\+]*?)(\.swf)\[/flash\]#si', '<object classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\' codebase=\'http://active.macromedia.com/flash6/cabs/swflash.cab#version=6,0,0,0\' id=\'\3\4\' width=\'\1\' height=\'\2\'><param name=movie value=\'\3\4\'><param name=\'quality\' value=\'high\'><param name=\'bgcolor\' value=\'#ffffff\'><embed src=\'\3\4\' quality=\'high\' bgcolor=\'#ffffff\' width=\'\1\' height=\'\2\' type=\'application/x-shockwave-flash\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\'></embed></object>', $text); $text = preg_replace("#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#sie","'<img src=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' style=\'border:0px\'>'",$text); $qcount = substr_count($text, "[quote]"); $ccount = substr_count($text, "[code]");
und füge beim img Code die beiden CSS Eigenschaften max-height und max-width mit deinen gewünschten Werten (hier sind es 500 Pixel) ein:
$text = preg_replace('#\[color=(black|blue|brown|cyan|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|violet|white|yellow)\](.*?)\[/color\]#si', '<span style=\'color:\1\'>\2</span>', $text); $text = preg_replace('#\[flash width=([0-9]*?) height=([0-9]*?)\]([^\s\'\";:\+]*?)(\.swf)\[/flash\]#si', '<object classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\' codebase=\'http://active.macromedia.com/flash6/cabs/swflash.cab#version=6,0,0,0\' id=\'\3\4\' width=\'\1\' height=\'\2\'><param name=movie value=\'\3\4\'><param name=\'quality\' value=\'high\'><param name=\'bgcolor\' value=\'#ffffff\'><embed src=\'\3\4\' quality=\'high\' bgcolor=\'#ffffff\' width=\'\1\' height=\'\2\' type=\'application/x-shockwave-flash\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\'></embed></object>', $text); $text = preg_replace("#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#sie","'<img src=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' style=\'border:0px; max-height:500px; max-width:500px;\'>'",$text); $qcount = substr_count($text, "[quote]"); $ccount = substr_count($text, "[code]");
