coarsy
21. April 2016 um 14:14
1
Hi zusammen,
ich baue mir gerade einen eigenen Farbwähler für die Varianten und hänge gerade am Austausch des jeweiligen Zoombildes per JavaScript.
Welches Data Attribut muss ich austauschen, damit der Zoom Viewer das richtige Bild vergrößert?
Aktuell wechsele ich das data-img-large, aber irgendwas muss wohl noch reinitialisert werden, aber nur was?
Vielen Dank und viele Grüße,
Chris
coarsy
21. April 2016 um 15:06
2
Hi nochmal,
es ist auf jeden Fall das “data-image-original” . Ich muss nach meinem Variantenwechsel auf jeden Fall nochmal das swImageZoom neu initialiseren…
Jemand ne Idee, wie?
coarsy
21. April 2016 um 16:00
3
Hmmm, das funktioniert auch nicht… Das kann ja eigentlich nicht so schwer sein, oder?
initAll: function() {
StateManager.updatePlugin('.product--image-zoom', 'swImageZoom', 'xl');
},
hec
21. April 2016 um 16:46
4
Hi,
ich mache was ähnliches, dabei nutze ich diesen JS-Code zum Reinitialiseren des Zooms und des Sliders - evtl. hilft dir das ja weiter:
StateManager
// Image slider
.addPlugin('*[data-image-slider="true"]', 'swImageSlider', {touchControls: true})
// Image zoom
.addPlugin('.product--image-zoom', 'swImageZoom', 'xl');
$('*[data-image-gallery="true"]').swImageGallery();
Grüße,
Sven
coarsy
21. April 2016 um 17:49
5
Servus und guten Abend,
hat leider nicht funktioniert, es wird immer noch das blaue Bild gezoomt, wenn man die graue Strumpfhose ausgewählt hat…
Siehe:
https://www.meinestruempfe.de/shopware5/damen/strumpfmode/ringel-strumpfhose.html
hec
21. April 2016 um 19:01
6
Wann genau wird der Code bei dir denn ausgeführt?
In meinem Fall ist es so, dass er als Callback der .load-Funktion dient.
coarsy
21. April 2016 um 19:27
7
Hi Hec, die Funktion wird nach Ajax Complete aufgerufen, also, wenn die DOM fertig gerendert wurde!
coarsy
22. April 2016 um 08:39
8
Es müsste eigentlich sowas in der Art sein, aber data ist undefined:
$('body').data('plugin_swImageGallery').destroy(),
$('*[data-image-gallery="true"]').swImageGallery();
coarsy
22. April 2016 um 12:49
9
Hi nochmal,
wirklich keiner eine Idee?
coarsy
25. April 2016 um 07:09
10
Hi mal wieder,
ich bin mit der Reinitialisierung der Gallery immer noch nicht weiter gekommen.
Hier mal das Script von meinem Plugin:
https://www.meinestruempfe.de/engine/Shopware/Plugins/Community/Frontend/CbeVariantsDetail/Views/common/frontend/_resources/js/variants_details.js
In der Funktion initAll wollte ich die Gallery neu initialisieren, was mir aber nicht gelingt (deswegen auch auskommentiert).
Auch mit dem Statemanager habe ich das bereits versucht oder funktioniert das nur, wenn ich das Plugin zu einem SW Jquery Plugin umschreibe?
LG und Dankeschön,
Chris
coarsy
27. April 2016 um 12:51
11
*push* Vielleicht kann ja jemand von Shopware selbst was dazu sagen…
Gerade die letzte von mir gestellte Frage wäre schon sehr aufschlußreich
LG,
Chris
coarsy
28. April 2016 um 11:55
12
Jetzt habe ich mir den ganzen Kram nochmals durchgelesen und daraus sollte eigentlich resultieren,
dass das zum gewünschten Erfolg führt:
StateManager.updatePlugin('*[data-image-gallery="true"]', 'swImageGallery', 'xl');
Wie immer, ohne Ergebnis. Mensch, das gibts doch nicht…
coarsy
2. Mai 2016 um 15:44
13
So, jetzt habe ich das komplette Plugin nochmal umgeschrieben und siehe da, es funktioniert immer noch nicht!
Selbst wenn ich sämtliche Plugins „remove“ und danach neu über den StateManager „adde“ wird immer noch das
alte Bild angezeigt, wenn ich das Modal öffnen möchte. Siehe:
https://www.meinestruempfe.de/shopware5/damen/strumpfmode/ringel-strumpfhose.html
Dort das graue Farbkästchen auswählen und dann mal versuchen, den Zoom zu Öffnen.
Irgendwas scheint da in ner Queue zu stecken etc… Ich bin mit meinem Latein am Ende und leider meldet sich
hier auch niemand von Shopware zu Wort…
Hier das angepasste Script:
https://www.meinestruempfe.de/shopware5/engine/Shopware/Plugins/Community/Frontend/CbeVariantsDetail/Views/common/frontend/_resources/js/variants_details.js
Es wäre wirklich toll, wenn jemand meinen Monolog hier beenden könnte!
LG,
Chris
coarsy
4. Mai 2016 um 07:22
14
So, nach langem hin und her habe ich es jetzt doch hinbekommen. Man muss einfach komplett das HTML in jQuery lösen, danach sind sämtliche Reinitialisierungen möglich. Danke fürs Lesen
1 „Gefällt mir“