Parseubb

Aus PHP-Fusion Wiki

Wechseln zu: Navigation, Suche

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]");

[Bearbeiten] Siehe auch