Webstatt.org - Community seit 2006 - 2012 (2024?)

BB-Code 'advanced'

user-210
25.09.2006 13:21

Ich möchte in meinem Forum den [IMG]- BBCode etwas spezieller bearbeiten.

Und zwar soll man Grafiken einbinden können "[IMG]url.jpg[/URL]".
Das kann natürlich theoretisch unendlich mal im Beitrag vorkommen. Ich möchte jetzt für jede Grafik die Breite und Höhe überprüfen und dann auch bei Bedarf (wenn's zu breit ist) anpassen.
Hat jemand eine Idee wie sowas aussehen könnte? Bilddaten auslesen ist kein Problem, nur ich häng bei der Schleife oder whatever ...

Hab mich mal an einigen Sachen probiert und viel rumgebastelt, aber ich hab mich da jetzt total festgefahren. Hier mal ein Versuch (von vielen), klappt leider auch net. Irgendein Logikfehler ^^


if(eregi("\[IMG\]", $text)) {
preg_match_all("/\[IMG\](.*?)\[\/IMG\]/si", $text, $gfx);
foreach($gfx[0] as $id =>$value) {
$info = getimagesize($gfx[1][$id]);
$width = "330";
if($info[0] < $width) {
$text = preg_replace("/\[IMG\](.*?)\[\/IMG\]/si",
"<p align=\"center\"><img src=\"\\1\" width=\"".$info[0]."\" height=\"".$info[1]."\" border=\"0\" alt=\"\" /></p>", $text);
} else {
$height = round($info[1]/($info[0]/$width));
$text = preg_replace("/\[IMG\](.*?)\[\/IMG\]/si",
"<p align=\"center\"><a href=\"\\1\" target=\"_blank\">
<img src=\"\\1\" width=\"".$width."\" height=\"".$height."\" border=\"0\" alt=\"\" title=\"größere Ansicht\" />
<span class=\"smallfont\">Größere Ansicht</span></a></p>", $text);
}
}
}


Am besten Ihr überseht den Versuch einfach, denn die Methode ist irgendwie komplett falsch. Wollte den Quellcode nur mal zeigen, damit ihr (hoffentlich) wisst was ich vorhab^^

Sie haben soeben die Position Ihres Mauszeigers auf dem Monitor verändert. Bitte starten sie Windows neu damit die Änderungen wirksam werden.
Avatar user-255
25.09.2006 19:24

Hier wäre JavaScript das passendere Werkzeug -- das WBB macht's IMHO auch so, kannst ja mal spicken zwinkern

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-210
26.09.2006 09:11

hui, das ist eine ziemlich hübsche Methode. thx :]

Sie haben soeben die Position Ihres Mauszeigers auf dem Monitor verändert. Bitte starten sie Windows neu damit die Änderungen wirksam werden.