Auf Shopware v5 JavaScript Plugin-Methoden Einfluß nehmen
Im Ordner
themes/Frontend/Responsive/frontend/_public/src/js/
befinden sich alle JavaScript Plugins von Shopware v5 die im Frontend benötigt werden. Bei dem ein oder anderen Plugin möchte man ggf. mal Anpassungen machen. Wie es üblich ist, ändert man nicht einfach den Code der originalen Datei, sondern nimmt Einfluß auf die Methode, die geändert werden soll. Im folgenden Beispiel zeig ich wie das geht.
Die Methoden der Plugins werden Veröffentlicht. Das sieht in der Regel so aus:
$.publish('plugin/PluginName/Methode', [ me, event ]);
Auf die kann man dann wie folgt Einfluß nehmen:
$.subscribe("plugin/PluginName/Methode", function(event, me) { var $el = me.$el, opts = me.opts; console.log(opts); // ... });
Ihr holt euch also den Plugin Pfad der per $.publish() veröffentlicht wird und nehmt eure Anpassungen mit $.subscribe() vor.
Mir ist aufgefallen, dass die übergebenen Werte (me, event) vertauscht sind. Bevor man mit den Werten arbeitet, sollte man diese zuvor geprüfen.
Wie und wo bindet man das nun ein?
Das ist leicht erklärt. Ihr macht euch z.B. eine JavaScript Datei in eurem Theme und ladet diese beim Render mit.
JavaScript Datei (z.B. frontend/_public/src/js/jquery.myFile.js)
(function($){ $.subscribe("plugin/PluginName/Methode", function(event, me) { var $el = me.$el, opts = me.opts; console.log(opts); // ... }); })(jQuery);
Theme index/index.tpl
{block name="frontend_index_header_javascript_jquery_lib" append} <script src="{link file='frontend/_public/src/js/jquery.myFile.js'}"></script> {/block}
Fertig