Hi,
ich möchte mit der Funtion overridePlugin ein Plugin überschreiben, unzwar das sich der Offcanvas Warenkorb (modal) öffnet nachdem man ein Produkt hinzugefügt hat.
Habe folgenden Code:
theme.php
protected $javascript = [
'src/js/jquery.add-article.js'
];
Und dann in meiner jquery.add-article.js in meinem Template-ordner:
;(function ($) {
'use strict';
$.overridePlugin('swAddArticle', {
init: function () {
var me = this,
opts = me.opts;
// Applies HTML data attributes to the current options
me.applyDataAttributes();
opts.showModal = false;
// Will be automatically removed when destroy() is called.
me._on(me.$el, opts.eventName, $.proxy(me.sendSerializedForm, me));
// Close modal on continue shopping button
$('body').delegate('*[data-modal-close="true"]', 'click.modal', $.proxy(me.closeModal, me));
StateManager.addPlugin(opts.productSliderSelector, 'swProductSlider');
},
sendSerializedForm: function (event) {
event.preventDefault();
console.log("test");
var me = this,
opts = me.opts,
$el = me.$el,
ajaxData = $el.serialize();
ajaxData += '&isXHR=1';
opts.showModal = false;
$.publish('plugin/swAddArticle/onBeforeAddArticle', [me, ajaxData]);
$.ajax({
data: ajaxData,
dataType: 'html',
method: 'POST',
url: opts.addArticleUrl,
success: function (result) {
$.publish('plugin/swAddArticle/onAddArticle', [me, result]);
return;
}
});
},
});
})(jQuery);
Hab also das ganze Modal zeug rausgenommen. Er zeigt in der Console auch meinen console.log(“test”) an. Allerdings wird das Modal immernoch angezeigt. Dann hab ich in der Gecachten JS Datei gesehen das er einfach beide Codes reingepackt hat, also den Original vom Plugin (mit dem Modal zeug) und danach meinen modifizierten Code. Daher kann das ja auch nicht funktionieren. Cache habe ich gelöscht und auch theme neu kompiliert, allerdings bleibt es beim gleichen Fehler.
Meines erachtens nach müsste er ja nachdem ich overridePlugin benutzt habe nur meinen modifizierten Code laden, und nicht mehr den originalen. Oder hab ich was vergessen?
Vielen Dank