Hallo lieber OXID-Entwickler
es ist bestimmt kein Bug in dem Sinne…
…aber es hat echt Nerven gekostet!
Ich verwende OXID CE 4.4.7_33396.
Folgender Fall:
Bilder werden vorab skaliert und automatisch hochgeladen, Datenbank wird manipuliert (Stichwort: OXPICGENERATED). Bilder sind da. Alle freuen sich.
ABER bei einem Produkt erscheint kein Zoom-Bild und kein Icon. Doch das “$oView->getActPicture()” Bild wird angezeigt?! Das Bild hat den klangvollen Namen “ee_p322.jpg”.
Ein paar Backtraces später stelle ich fest, dass es im “oxpicturehandler.php” eine Methode Names “_getBaseMasterImageFileName” gibt. Diese müsste aus
"ee_p322.jpg" eigentlich den String “ee_p322” machen. Die Apidoc sagt: "Gets master image file name and removes suffics (e.g. [B]_p1[/B]) from file end."
Nun steht da also:
$sMasterImageFile = getStr()->preg_replace( ‘/[B]_p\d+/B$/i’, ‘\1’, $sMasterImageFile );
Aus meinem “ee_p322” wird dadurch der String “ee”. Danach funktioniert natürlich nichts mehr. Wenn man ein Bild übrigens über den Admin-Bereich hoch lädt, wird bei den Bilder-Versionen für die Order “z1” und “icon” das “_pXXX” vorsorglich abgeschnitten.
Heute habe ich gelernt:
[B]Keine Dateinamen mit einem “_p” gefolgt von einer Zahl verwenden!![/B]
Auf das dieses kleine Malheur keinem mehr geschieht!
- Johannes