vBulletin 3 und 4, wBB 3.x (<= 3.1.7) und PHP 5.4: Thumbnails reparieren

rellek

relativ sensationell
Teammitglied
Wer wagemutig der Empfehlung folgt und die aktuellste PHP-Version einsetzt, wird bei bekannten Forensoftwares sein blaues Wunder erleben: vBulletin 3 und 4 (mit anderen Worten: Alle, die noch "irgendwie" unterstützt werden und/oder nennenswerte Verbreitung haben) und wBB 3.x (<= 3.1.7) haben Probleme damit, Thumbnails aus JPG-Dateien zu generieren. Das WBB hat scheinbar mit jeder Grafik Probleme, das vB explizit nur mit JPG.

Das liegt daran, dass PHP etwas strenger geworden ist und/oder die Entwickler nicht genau wussten, was mit "null" anzufangen ist.

Es geht um die Funktion imagejpeg(), die bis zu 3 Parameter benötigt. Es wird die Referenz zum Bild, optional ein Dateiname und ebenfalls optional die Qualität des Bildes angegeben. Der Dateiname wird nicht unbedingt benötigt, wenn man ihn weglässt, wird das Bild als Binärkäse ausgegeben, was auch nicht immer von Nachteil ist. Dann allerdings muss der zweite Parameter NULL heissen. Dies ist nicht erst seit PHP 5.4 so, aber es stand schon immer so in der Dokumentation.

Auf jeden Fall haben genannte Software-Lösungen an der Stelle eine leere Zeichenkette, was bis zur Veröffentlichung von PHP 5.4 auch "in Ordnung" war (im Sinne von: es funktionierte). Wer nun vor nicht umgewandelten Bildern steht, kann sich folgendermassen behelfen:

vB 3.x/4.x:
includes/class_image.php
suche:
PHP:
imagejpeg($image, '', $quality);

ersetze durch:
PHP:
imagejpeg($image, null, $quality);

wBB 3.x (<= 3.1.7)
wcf/lib/data/image/Thumbnail.class.php
suche:
PHP:
@imageJPEG($imageDst, '', 90);

ersetze durch:
PHP:
@imageJPEG($imageDst, null, 90);

Fairerweise sei dazugesagt, dass im wBB ein Bugfix irgendwann kommen wird (wenn 3.1.8 oder 4.0 veröffentlicht wird), vgl. Bugtracker. Update: Es gibt ein Update der Image Utilities auf Version 1.1.1, die diesen Fehler bereits fixt. Es ist über das Auto-Update erhältlich.

Beim vBulletin sieht das anders aus. Hier wurde der Bugtracker-Eintrag damit "gelöst", dass vB4.x (und natürlich auch 3.x) nicht mit PHP 5.4 kompatibel sind. Es wird nicht beim Namen genannt, aber unterschwellig kann der geneigte Lizenzinhaber durchaus herauslesen, dass man sich vielleicht die PHP 5.4-Geschichte für vB5 ansehen will (das noch in diesem Jahr kommen soll (und wahrscheinlich noch einmal Geld kostet)) - auf jeden Fall ist dies eine günstigere Lösung dafür.

Im Anhang das JIRA-Log vom vB-Team, das darauf verweist, dass vB4 nicht mit PHP 5.4 kompatibel ist.


Eine Danksagung geht an den User CB|Steffen, der die Nadel im Heuhaufen gefunden hat und sich ausdrücklich von "wem auch immer vBulletin gehört" distanziert.
 

Anhänge

  • Bildschirmfoto 2012-06-04 um 14.42.38.png
    Bildschirmfoto 2012-06-04 um 14.42.38.png
    58,4 KB · Aufrufe: 9
Oben