Flow Theme Zoom Bilder BUG

Hallo zusammen,

Der Thread befasst sich ja mit verschiedenen Punkten. Zu dem Fehler “Cannot read property x of undefined” bei Image Zoom und mehr als einem Bild habe ich aber keine Lösung herauslesen können. Da ich das Problem nun auch hatte, habe ich ein bisschen tiefer gegraben. Ich habe dazu eine Lösung gefunden, die relativ simpel ist und auf die Standard-OXID Funktionalität zurück greift.

Wen es interessiert - Das Problem
Das Problem ist, dass die Bild-Größen bei den “more pics” nicht geladen werden und diese Angaben dann dem JavaScript später fehlen. @windes hatte dazu schon eine Lösung mit allow_url_fopen gepostet, @Mitmacher hat hier zurecht angemerkt, dass das keine Lösung ist, da man sich damit Sicherheitsprobleme ins Haus holt.

Erstaunlich ist, dass OXID selber in der Detailansicht diese Daten auch anders lädt, nämlich bei dem großen Bild, das über den “morepics” angezeigt wird. Da dieser Weg nicht mit URLs sondern über einem lokalen Pfad läuft, grätscht die PHP Security Einstellung nicht rein und die Daten werden korrekt ermittelt.

Konkret: Die Lösung
Im Prinzip muss nur eine Zeile in der morepics.tpl gegen zwei neue ausgetauscht werden:

[{assign var="aPictureInfo" value=$oPictureProduct->getMasterZoomPictureUrl($iPicNr)|@getimagesize}]

austauschen gegen:

[{assign var="sPictureName" value=$oPictureProduct->getPictureFieldValue("oxpic", $iPicNr)}]
[{assign var="aPictureInfo" value=$oConfig->getMasterPicturePath("product/`$iPicNr`/`$sPictureName`")|@getimagesize}]

Das habe ich jetzt in drei verschiedenen Shops (4.10.X // CE und PE) so gemacht und war jedes mal erfolgreich.

Happy Coding,
Thorsten

7 Likes