Jquery Plugin modifizieren

Guten Morgen, ist in der aktuellen 5.0.2 RC diese Möglichkeit schon enthalten? https://developers.shopware.com/designe … y-plugins/ Ich versuche es hiermit, aber es bekomme keine Reaktion: $.overridePlugin('listingActions', { createActiveFilterLabel: function(response) { var me = this; alert('test'); } }); Bin für jeden Tipp dankbar.

Hallo es sieht alles korrekt aus. Ich hoffe dass Sie nicht vergessen das File unter {eigene Theme}frontend/_public/src/js/*.js zu speichern und im File Theme.php protected $javascript = ['src/js/jquery.advancedListing.js',]; eintragen. Es gibt auch die Möglichkeit die Änderungen zu testen: im File jquery.plugin-base.js nach der Zeige 475 mit dem Befehl console.log() die Änderungen prüfen irgenwie so: $.fn[pluginName] = function (options) { return this.each(function () { var element = this, pluginData = $.data(element, 'plugin\_' + alias) || $.data(element, 'plugin\_' + pluginName); if (!pluginData) { var Plugin = function () { PluginBase.call(this, pluginName, element, options); }; Plugin.prototype = $.extend(Object.create(PluginBase.prototype), { constructor: Plugin, superclass: overridePlugin }, overridePlugin, override); pluginData = new Plugin(); $.data(element, 'plugin\_' + pluginName, pluginData); if (alias) { $.data(element, 'plugin\_' + pluginName, pluginData); } } }); }; console.log($.fn[pluginName]);

Moin, meine JS Datei ist korrekt eingehängt und wird auch geladen. Ich versuche deinen Test mal. Danke dir.

Hallo, bei mir besteht das gleiche Problem. Die JS-Datei ist in der Theme.php eingebunden und wird auch geladen. Nach einigen erfolglosen Tests habe ich den fertigen Code der Dev-Seite https://developers.shopware.com/designe … y-plugins/ eingebunden, aber ohne sichtbares Ergebnis. Besteht hier ein allgemeines Problem oder gibt es noch zusätzliche Dinge zu beachten? Gruß

Hallo, ich bin eben über das selbe Problem gestoßen! Hat denn jemand bereits herausgefunden, wo das Problem liegt? Ich habe bis jetzt die jQuery-Dateien in meinem Theme angelegt und komplett überschrieben. Das funktioniert bestens. Nachdem ich nun folgendes gelesen habe, wollte ich probeweise mit der override-Funtion arbeiten. Modify jQuery plugins $.overridePlugin('<pluginname>', { '<override the methods>' });

Würde mich freuen, wenn jemand mal einen Tipp hat :thumbup:

Ich bin ebenso auf dieses Problem gestoßen. Bei mir bewirkt $.overridePlugin derzeit gar nichts. Funktioniert es bei irgenjemandem so, wie es in der Doku steht?

@pwagner schrieb:

Ich bin ebenso auf dieses Problem gestoßen. Bei mir bewirkt $.overridePlugin derzeit gar nichts. Funktioniert es bei irgenjemandem so, wie es in der Doku steht?

Hallo,

ja tut es, ich hatte leider schon das Vergnügen, Shopware jQuery Plugins anpassen / überschreiben zu müssen.

Beste Grüße

Sebastian

Hallo,

die override Funktion kann nur einmal pro jQuery Plugin verwendet werden

wenn du also “pluginA” irgendwo überschrieben hast, dann kannst du es nicht nochmals überschreiben.

 $.overridePlugin('pluginA', { '<override the methods>'
});</override>

Danke für die Rückmeldungen! Es ist beruhigend zu wissen, dass es prinzipiell funktionieren sollte.

Ich möchte das “search” Plugin überschreiben:

$.overridePlugin('search', {...});

Ich habe mein gesamtes Projekt nach Vorkommnissen von $.overridePlugin durchsucht, und es wird (außer in Kommentaren in jquery.plugin-base.js) nirgends in Zusammenhang mit search verwendet.

Nun habe ich durch Debuggen herausgefunden, dass das Search-Plugin - jquery.search.js - nicht search sondern swSearch heißt. (In der Dokumentation und in den Kommentaren in jquery.plugin-base.js stehen in den Beispielen allerdings search und nicht swSearch).
Folgender Code funktioniert jetzt bei mir:

$.overridePlugin('swSearch', {...});

Conclusio: Man sollte zur Sicherheit im Plugin bei “$.plugin( name , {…})” nachschauen, welchen Namen das Plugin tatsächlich hat, wenn man versucht, es zu overriden.