Javascript erweitern

Hallo,

Ich möchte in der jquery.emotion.js im Abschnitt

“Initializes special elements and their needed plugins” gleich drunter StateManager.updatePlugin(’*[data-image-slider=“true”]’, ‘imageSlider’);

folgende Zeile einfügen um Modalbox in den Einkaufswelten zu laden:

StateManager.updatePlugin(’*[data-modalbox=“true”]’, ‘swModalbox’);

Wie mache ich das Updatesicher? Mir ist klar, dass man die Datei in eigenem Theme  speichern soll, doch das funktioniert nicht wie bei Template.

Ich bedanke mich im Voraus für Eure Unterstützung.

Hallo

dieses könnte Dir eventuell helfen.

http://community.shopware.com/jQuery-Funktionen-überladen_detail_600.html

Gruß

Hallo,

danke für Deine Antwort, doch ich glaube es ist nicht der richtige Weg. Mir geht es nur darum, dass nicht die originale jquery.emotion.js geladen wird sonder die geänderte jquery.emotion.js in menem Theme.

https://developers.shopware.com/designers-guide/modify-jquery-plugins/#override-a-jquery-plugin

Hallo,

hierfür brauchst Du das Plugin nicht bearbeiten. In der Methode wird bereits ein passendes Event geworfen auf welches Du Dich ganz einfach in Deinem eigenen JavaScript Code registrieren kannst. Das könnte in Deinem Fall z.B. so aussehen:
 

$.subscribe('plugin/swEmotion/onInitElements', function() {
    window.StateManager.updatePlugin('*[data-modalbox="true"]', 'swModalbox');
});

 

Sonnige Grüße,
Phil

Danke Phil für die Antwort.

es heißt also, ich muss nur noch eine eigene JavaScript-Datei mit  o.g. Inhalt erstellen und in eigenem Theme speichern, 

danach noch in theme.php anmelden, und das wars?

 

Hey Donpedro, ganz genau!

Weitere Infos zum Event System findest Du auch hier:
jQuery plugins and the StateManager

Sonnige Grüße,
Phil

1 Like

Hey Phil,

es hat wunderbar geklappt, vielen Dank!

Ich stehe jedoch noch vor einem Problem. Ich möchte in den Einkaufswelten einen JavaScript-Element einbinden das eine Begrüßung nach Tageszeit ausgibt. Wenn ich aber den Code unter JavaScript Code eintrage, wird nur die Begrüßung auf einer weisen Seite ausgegeben, sonst nichts. Was mache ich flasch?

Hier der Code:

Datum = new Date();
Stunde = Datum.getHours();
 
if(Stunde > 17)
{
    document.write("Guten Abend! Schön, dass Sie vorbeischauen!");
}
else if(Stunde > 11)
{
    document.write("Guten Tag! Schön, dass Sie vorbeischauen!");
	}
else if(Stunde > 1)
{
    document.write("Guten Morgen! Schön, dass Sie vorbeischauen!");
}

 

Hallo,

hat keiner eine Idee?

Ohne Eure Hilfe komme ich nicht mehr weiter, bitte!