Flow Theme Zoom Bilder BUG

Hallo Qriz, vielen Dank für deine superschnelle Antwort!

Ich habe mich leider nicht klar genug ausgedrückt. :-/
Mein Problem ist, dass unterhalb von 768px Bildschirmbreite Photoswipe nicht mehr funktioniert. Das scheint im Flow-Template generell so zu sein.

Ich suche mich dumm und dämlich und finde keine Lösung. Das muss doch machbar sein??!!

Das scheint noch ein Bug zu sein. Kuck mal in der JS-Console, dort kann Carousel nicht referenziert werden.

ReferenceError: Carousel is not defined

Evtl. gibt es eine Lösung im Git-Branch?

Kuck dir mal folgende Datei an:

application/views/flow/build/js/pages/details.js

Am Ende wird mit isMobileDevice versucht das Carousel zu laden. Das würde ich alles mal auskommentieren zum testen.

In nachfolgender Datei wird auch noch JavaScript initialisiert, welches die Detailseite benötigt. Die if-Abfrage nach isMobileDevice muss raus, damit es immer geladen wird.

application/views/flow/tpl/page/details/inc/productmain.tpl

Mein Kommentar wird gerade leider nicht freigeschalten.

Kuck dir mal folgende Datei an:

application/views/flow/build/js/pages/details.js

Ganz unten wird mit isMobileDevice das Carousel versucht zu laden. Kommentiere den ganzen Block mal aus.

In nachfolgender Datei wird auch noch JavaScript initialisiert, welches die Detailseite benötigt. Die if-Abfrage nach isMobileDevice muss raus, damit es immer geladen wird (ca. Zeile 70)

application/views/flow/tpl/page/details/inc/productmain.tpl

[QUOTE=Marco Steinhaeuser;185253]Ist er denn schon als Bug eingetragen? https://bugs.oxid-esales.com/

Gruß[/QUOTE]

Ja, schon seit November letzten Jahres:

https://bugs.oxid-esales.com/view.php?id=6554
und
https://bugs.oxid-esales.com/view.php?id=6552

Auch auf GitHub existiert ein Pull Request:

Seitdem tut sich irgendwie wenig bis nix. Wir haben jetzt die 4.10.4 und es ist immer noch broken. :frowning:

(Wo meldet man denn jetzt eigentlich Bugs? Als Issue in GitHub oder doch weiter über den Bugtracker?)

…wobei ich auch nicht ganz verstehe, warum das nicht viel höher priorisiert wird?

Die ganze Benutzung des Shops ist damit doch total hinüber? Oder benutzen nur so wenige Shops mehr als 5 Bilder?

Probiers mal hiermit: http://www.foxido.de/flow-fix
Sieht dann so aus:

http://4104.foxido.de/bekleidung/fashion/fuer-sie/jeans/kuyichi-jeans-anna.html

Das klappt sehr gut, vielen Dank - gleich mal integriert.

Was mir aber noch aufgefallen ist: Auf dem Smartphone kann man bei > 5 Bildern gar keine Gallery mehr sehen. Nachvollziehbar hier:

Einfach auf dem Smartphone mal die einzige Variante auswählen. Dann verschwindet die Gallery komplett.

Gerne.

Zum Fix: Es wurde noch eine Datei verändert bzw. hinzugefügt, damit bei Klick auf die Pfeile nicht ständig die Hauptbilder verschwinden.

Bei Gelegenheit schaue ich mir das auch noch an.

Klasse, habe mir die aktuelle Version gezogen. Das mit dem Bild-Verschwinden beim Klick auf den Pfeil ist mir auch aufgefallen, wollte aber eines nach dem anderen angehen. :smiley:

Danke!

Kommando zurück! Es funktioniert leider nicht vollständig.

Blöderweise habe ich nur mit einem klein gezogenen Fenster getestet, und nicht mit einem echten Mobile Device oder halt in den Entwicklertools mit einem entsprechenden Emulator.

Mein Fehler, sorry.

Zu den Problemen:

[QUOTE=Phillinger;187802]Ja, schon seit November letzten Jahres:

https://bugs.oxid-esales.com/view.php?id=6554
und
https://bugs.oxid-esales.com/view.php?id=6552

Auch auf GitHub existiert ein Pull Request:

Seitdem tut sich irgendwie wenig bis nix. Wir haben jetzt die 4.10.4 und es ist immer noch broken. :frowning:

(Wo meldet man denn jetzt eigentlich Bugs? Als Issue in GitHub oder doch weiter über den Bugtracker?)[/QUOTE]

[U]Bug 6552[/U]:
[I](Seite nach Schließen des Zooms nicht mehr benutzbar, nur neu laden hilft)[/I]
Mit dem Fix von vanilla_thunder ist das behoben: Der Zoom schließt ordentlich, die Seite bleibt benutzbar. (Siehe auch Kommentar im Ticket)

[U]Bug 6554[/U]:
[I](Gallery broken wenn > 4 Bilder)[/I]
Auf mobile devices:

Hier schmeißt die Console in den Entwicklertools (z.B. Chrome) folgenden Fehler, wenn man z.B. ein Nexus 5X emuliert:


Uncaught ReferenceError: Carousel is not defined
    at HTMLDocument.<anonymous> (details.min.js?1498765689:1)
    at k (jquery.min.js?1498765690:2)
    at Object.fireWith [as resolveWith] (jquery.min.js?1498765690:2)
    at Function.ready (jquery.min.js?1498765690:2)
    at HTMLDocument.g (jquery.min.js?1498765690:1)

/edit: Das passiert auch bei Artikeln mit < 4 Bildern, nur fällt es da halt nicht auf, weil das Carousel nicht benötigt wird.

Auf dem Desktop sieht wirft er dann den im Bug-Eintrag geworfenen Fehler.


details.min.js?1498765689:1 Uncaught TypeError: c.flexslider is not a function
    at Object.Flow.initDetailsEvents (details.min.js?1498765689:1)
    at HTMLDocument.eval (eval at globalEval (jquery.min.js?1498765690:1), <anonymous>:2:71)
    at k (jquery.min.js?1498765690:2)
    at Object.add [as done] (jquery.min.js?1498765690:2)
    at _.fn.init._.fn.ready (jquery.min.js?1498765690:2)
    at eval (eval at globalEval (jquery.min.js?1498765690:1), <anonymous>:2:15)
    at eval (<anonymous>)
    at Function.globalEval (jquery.min.js?1498765690:1)
    at _.fn.init.domManip (jquery.min.js?1498765690:2)
    at _.fn.init.append (jquery.min.js?1498765690:2)

Auf dem Desktop kann man sich hier mit diesem Fix von le_shatai behelfen. Einfach die morepics.tpl entsprechend ändern, dann läuft das auf dem Desktop fehlerfrei.

[B]Aber weiterhin bleibt der Carousel-Fehler auf den mobile devices.[/B]

Getestet habe ich das auf einem frisch aufgezogenen CE 4.10.4 und nur vanilla_thunders und le_shatai Bugfixes. Kann das jemand hier nachvollziehen?

So, das waren jetzt einige Edits, aber jetzt sollte es passen.

mein Fix dürfte bei 6554 eigentlich nicht helfen, da dort der Flexslider erst gar nicht geladen wird.
als ergänzung zum Fix von le_shatai:
benötigt werden nur diese beiden Zeilen:


aus morepics.tpl und verschoben werden sollten sie nach productmain.tpl, etwa in die Zeile 86:

und der Code drum herum

[{if $iMorePics > 4}]
...
[{/if}]

muss weg, damit der Flexslider für mobile Devices immer geladen wird, auch < 4 Bildern

[QUOTE=vanilla thunder;188132]mein Fix dürfte bei 6554 eigentlich nicht helfen, da dort der Flexslider erst gar nicht geladen wird.[/QUOTE]
Korrekt, habe ich in meinem Posting entsprechend korrigiert (siehe edits). Danke!

[QUOTE=vanilla thunder;188132]
als ergänzung zum Fix von le_shatai:
benötigt werden nur diese beiden Zeilen:


aus morepics.tpl und verschoben werden sollten sie nach productmain.tpl, etwa in die Zeile 86:

und der Code drum herum

[{if $iMorePics > 4}]
...
[{/if}]

muss weg, damit der Flexslider für mobile Devices immer geladen wird, auch < 4 Bildern[/QUOTE]
Ich habe das einfach dorthin kopiert, natürlich ohne die if-Abfrage, sodass es immer geladen wird.

Dann funktioniert alles - wie gesagt - aber nur auf dem Desktop. Auf mobile fehlt ihm die Carousel-Klasse.

[QUOTE=vanilla thunder;188132]

[{if $iMorePics > 4}]
...
[{/if}]

[/QUOTE]

Das ist auch im Fix, also dem anderen :), drin bzw. nicht mehr drin.

Moinsen,
auch ich muss mich unbedingt hier mal wieder einklinken, da ich es zum einen auch nicht besonders erbaulich finde, das dieser Bug noch immer nicht final behoben wurde. Zum anderen versuche ich selbst seit ca. 2 Tagen, es zumindest zu verstehen, aber das Ganze ist eine völlig krude Sache, die immer verwirrender wird. Bisher stochern alle nur ein wenig im Heuhaufen herum, scheint mir (ich natürlich eingeschlossen) und niemand weiß so richtig, wo der Hund begraben liegt. Um diese These zu untermauern, schaut euch mal folgendes an (OXID 4.10.4):


Dort klappt es nun nämlich seit kurzem, evtl. aber auch schon länger, da kam ich leider irgendwann durcheinander. Also habe ich mal den Quellcode vergleichen mit meinem eigentlich identischen Test-Shop und kam nun auf folgendes:
Sobald OXID im Demo-Mode läuft (config.inc.php: $this->blDemoShop = 1) UND die Tags aktiviert sind (Admin-Grundeinstellungen) und nur dann(!) funktioniert der Photoswipe-Zoom perfekt und zwar OHNE jeglichen Patch (schaltet mal die Tags im Demo-Admin aus, dann seht ihr, was ich meine)! Und genau darauf will ich hinaus: eure bisherigen Mühen absolut in Ehren, keine Frage! Aber ich halte es für den falschen Ansatz, zu versuchen, externe JS-Bibliotheken zu patchen, denn es gibt einen eindeutigen Beweis, dass dies nicht unbedingt nötig ist! Oftmals holt man sich damit nämlich wieder neue Probleme ins Boot, wie man bei allen bisherigen Versuchen ja merken konnte. Allerdings ist es auch irre mühsam, alle erdenklichen Varianten in allen möglichen Browser durchzutesten, dass lässt sich ja leider nicht automatisieren… :frowning:
Wenn man diesen Quellcode-Vergleich jedenfalls auf die Spitze treibt, kann man folgendes schaffen, und spätestens hier steige ich aus, denn das widerspricht jeder Logik: ich habe es geschafft (durch Auskommentieren der Tags-JS-Includes), zwei HTML-Quelltexte zu bekommen, die bis auf einige Leerzeilen (durch diese Auskommentierung) absolut identisch sind, und trotzdem funktioniert der Zoom mit dem einen, mit dem anderen aber nicht, und zwar reproduzierbar im FF! Weiterhin sind alle Cookies und die Session identisch, wo kann den jetzt bitte schön noch ein Unterscheid sein, der dieses Browserverhalten erklärt??? Da wird man ja gaga… :eek:

So, ein weiterer Versuch, das Ganze mal in eine andere (und hoffentlich erfolgreichere als bisher) Richtung zu lenken, und ich will hier echt keinem auf den Schlipps treten: danke nochmal für alle bisherigen Mühen + Viele Grüße!

PS: ups, die letzten 3-4 Posts habe ich noch nicht berücksichtigt, ahne aber nichts gutes… :wink:
Außerdem geht es hier wohl auch um mehrere verschiedene Bugs, bei den Mobile-Problemen bin ich noch nicht angelangt. Und ich habe für die Detailseite noch einen weiteren FF-Bug in Petto, der noch nie erwähnt wurde. Dazu aber mehr an anderer Stelle. Ich würde nur erstmal so gerne wissen: was haben die Tags mit dem Zoom zu tun? Und noch etwas: im Prinzip wird duch den Demo-Mode die Einbindung der Tags-JS-Includes wieder unterbunden, aber es reicht eben NICHT aus, einfach stattdessen diese Auszukommentieren, wie oben beschrieben. Das ist total schräg!

achsooo, ich war bei der " c.flexslider is not a function" Fehlermeldung.
Ich habe keine Ahnung, was dieses Carousel sein soll. Könnte bootstrap carousel sein.
ich würde einfach den ganzen mobile carousel Quatsch rausnehmen:

Außerdem hier mal ein Patch für die morepics.tpl wg. der Sache auf Seite 5 dieses Threads, bis jmd. das Ganze mal auslagert in eine Core-Klasse, wie auch im Kommentar der productmain.tpl zitiert:

[{* ToDo: This logical part should be ported into a core function. *}]

Ich habe den Code nur von dort kopiert und um den Bildindex ergänzt. Statt:

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

kann man dieses nehmen:

[{if $oConfig->getConfigParam('sAltImageUrl') || $oConfig->getConfigParam('sSSLAltImageUrl')}]
                    [{assign var="aPictureInfo" value=$oPictureProduct->getMasterZoomPictureUrl($iPicNr)|@getimagesize}]
                [{else}]
                    [{assign var="sPic" value="oxarticles__oxpic"|cat:$iPicNr}]
                    [{assign var="sPictureName" value=$oPictureProduct->$sPic->value}]
                    [{assign var="aPictureInfo" value=$oConfig->getMasterPicturePath("product/`$iPicNr`/`$sPictureName`")|@getimagesize}]
                [{/if}]

Leider funktioniert dies aber wiederum nicht im Demo-Mode (siehe Zoom-Bug oben), nur zur Warnung… :wink:
(oder wie schafft man es, das erste und zweite “assign” im {else} so zu vereinen, dass es keine smarty-secure-Warnung gibt?

[QUOTE=vanilla thunder;188136]achsooo, ich war bei der " c.flexslider is not a function" Fehlermeldung.
Ich habe keine Ahnung, was dieses Carousel sein soll. Könnte bootstrap carousel sein.
ich würde einfach den ganzen mobile carousel Quatsch rausnehmen:

Dann verschwindet auf den mobiles zwar die Fehlermeldung, aber es wird gar keine Gallery mehr geladen, d.h. man sieht nur noch Bild 1.

Ich werd’ noch irre. Mitmacher hat da schon recht, zum Verrückt werden. :smiley:

Für mich sieht es gar nicht so eindeutig aus.
In der Console gibts einen Javascript Fehler, weil im Demo Modul, warum auch immer, oxtags.min.js nicht geladen wird, also bricht an dieser Stelle die Ausführung von Javascript ab.
Der Photoswipe Bug ist dadurch bedingt, dass Photoswipe Javascript beim Laden der Varianten nochmal ausgeführt wird, wozu es im Demo-Modus durch den erwähnten Fehler eben nicht mehr kommt.

Oder anders gesagt, für Nicht-Programmierer: Seinem Kind die Beine zu brechen verhindert zwar, dass er später ein schlechter Tänzer wird, aber nur weil er gar kein Tänzer mehr werden kann.