Plugin Variable in DB speichern

Wie speichert Ihr eure Variablen in Shopware? Bei Drupal z.B. gibt es eine eigene Tabelle in der Systemvariablen gespeichert werden, Bei Shopware gibt es ja die Plugin Config. Hierbei ist das Problem das der Kunde die Daten sieht und evt. ändern kann. Ich möchte nun 2 Variablen speichern die der Nutzer nicht sehen soll. Muss ich extra dafür eine Tabelle erstellen oder gibt es auch eine Systemvariablen Tabelle oder ähnliches? Sollte ich nur die Plugin Config nutzen können, wie speicher ich dort Variablen ohne das Formular zu benutzen? Hab hierzu kein Bsp. gefunden.

So direkt gibt es keine „allgemeine Konfigurations-Tabelle“, in die alle Plugins munter ihre Einstellungen speichern können. Hier kannst du tatsächlich entweder mit der Plugin Installation Felder anlegen, die du später editieren kannst - oder du legst dir eine eigene Tabelle an. Viele Grüße

Danke für deine Antwort. Hab gesehen das ich Felder auch auf hidden=true setzen kann. Ist im Grunde was ich gesucht habe.

Die Antwort ist meist einfacher als am Anfang gedacht. Der Vollständigkeit halber hier die Lösung. $shop = Shopware()-\>Models()-\>getRepository('Shopware\Models\Shop\Shop')-\>findOneBy(array('default' =\> true)); $pluginManager = Shopware()-\>Container()-\>get('shopware.plugin\_Manager'); $plugin = $pluginManager-\>getPluginByName('MeinPlugin'); $pluginManager-\>saveConfigElement($plugin, 'MeineConfigVariable', $meinVariablenWert, $shop);

2 Likes

Bei der og. genannten Lösung zur Speicherung von Einstellungen in der DB habe ich unter SW5 das Problem, dass die cascading-Attribute der Entity scheinbar nicht richtig konfiguriert sein. Ich bekomme folgenden Fehler: A new entity was found through the relationship \'Shopware\\Models\\Config\\Value#shop\' that was not configured to cascade persist operations for entity: Shopware\\Models\\Shop\\Shop@0000000052df92cf0000000066f01a03 Teilweise habe ich auch das Problem, dass der angegeben Subshop in der Datenbank dupliziert wurde…