Übergabe Plugin Konfiguration an jquery

Hallo Zusammen,

ich habe eine generelle Verständnisfrage. Natürlich hab ich gegoogelt, die Shopware Docu durchforstet und auch im Forum gesucht. Aber ich finde immer nur Bruchstücke, die wohl auch aus unterschiedlichen Lösungsansätzen stammen. Ich möchte als Plugin Anfänger aber mal das grundprinzip verstehen.

Ich habe ein eigenes Plugin geschrieben, welches im Frontend ein paar Dinge anzeigt. Das Plugin hat auch eine Konfiguration. Den wert aus diesem Feld in der PluginKonfig möchte ich in meinem jquery file weiterverwenden. Aber wie kann ich darauf zugreifen? Ich schreibe an dieser Stelle mal noch nicht, was ich alles versucht habe, da ich gerne eine objektive meinung hätte, was der einfachste Weg ist. Wäre super, wenn sich jemand von euch die Mühe machen möchte mir zu helfen! Danke!

Hallo,

siehe Shopware Dokumentation, da ist der Fall 1 zu 1 perfekt erklärt, siehe: https://developers.shopware.com/designers-guide/javascript-statemanager-and-pluginbase/#passing-user-configuration-to-the-jquery-plugin .

Grüße 

Sebastian

Hi Sebastian,
besten Dank. An diese Anleitung hätte ich mich auch gehalten. Aber ich stehe auf der Leitung…

Ich versuche die 2. Variante über das html data attribut.

aber “myOverwrittenValue” ist ja ein fester Wert. Hier sollte doch der Wert aus meiner plugin config stehen. Bzw. verstehe ich nicht, wie er da reinkommen soll…?

Hallo,

wer sucht, findet auch: https://forum.shopware.com/discussion/comment/209592/#Comment_209592 .

das Thema hat sogar fast den identischen Titel.

Grüße

Sebastian

das hatte ich natürlich schon gefunden. Allerdings ist hier der Lösungsansatz “mach’s doch über das Data-Attribut”.

Allerdings ist das ja (wie oben beschrieben) mein Problem. Es funktioniert bei mir nicht (und ich habe es auch noch nicht ganz verstanden). Wie kommt der wert aus meiner plugin Configuration, welche der user im backend einstellt in das data Attribut? Das erschließt sich mir leider noch nicht. Kannst du mir das erklären?

Hallo,

das steht doch aber in dem Beitrag? Einfach statt myOverwrittenValue _{config name=‚meine-config‘ namespace=‚MeinPlugin‘} _einfügen, fertig. Die Beispielwerte natürlich noch durch die entsprechenden Werte des Plugins ersetzen.

Grüße

Sebastian

Hallo Sebastian,

ok, aber das will noch nicht so wie ich will :slight_smile:

Könntest du mir sagen, was ich generall alles brauche, um die Konfigwerte in mein jquery zu bekommen. Ich habe irgendwie den verdacht, dass ich verschiedene Lösungsansätze miteinander vermische…

Ich hab ein einfaches kleines Plugin: 

  1. subscriber (hier wollte ich mir eigentlich die konfiguration auslesen. die $conf beinhaltet aber dann nur ein leeres Array…

    public function getPluginConfig($args){
    $controller = $args->get(‘subject’);
    $view = $controller->View();
    $conf = Shopware()->Container()->get(‘shopware.plugin.cached_config_reader’)->getByPluginName(‘NameMeinesPlugins’);

  2. mein js file:

     $.plugin('NameMeinesPlugins', {
    
    
         defaults: {
             meinDefaultWert: 'test'
         },
    
         init: function () {
             var me = this;
             me.applyDataAttributes();
             me.meinFunctionsAufruf();
         },
    
  3. meine tpl Datei: hier hänge ich das Data Attribut an

    data-meinAttribut="{config name=‘meine-config’ namespace=‘NameMeinesPlugin’}"

 

Ist der Ansatz an sich richtig oder vermische ich etwas? Ist etwas doppelt bzw. fehlt etwas? Und noch zu 3.: ‘meine-config’ ist der elementname aus meiner config? und das dataattribut muss ebenfalls diesen Namen haben? Sorry für die vielen Fragen, aber ich würde gerne den Zusammenhang verstehen. Das ist m.E. auch das Problem mit der Shopware Doku, denn da findet man zwar bestimmte Teile aber das is oft unvollständig, bzw. werden andere Teile vorausgesetzt. Und wenn man im Forum sucht, sind manche Einträge so veraltert, dass das auch nicht mehr passt. Wäre also super, wenn du mir das erklären könntest. Besten Dank schon mal!