Plugin Konfiguration Textfields Scope

Hallo Community,

eine Frage zu den Scopes bei Textfeldern in der Plugin-Konfiguration:

Szenario: Wenn ein Textfeld leer ist, tritt automatisch die Vererbung ein.

Ich habe ein Textfeld, welches befüllt werden kann. Es ist ein Link, welcher einen Button erzeugt, wenn ein Link eingetragen ist. Will ein User nun auf einem Sub- oder Sprachshop diesen Button nicht anzeigen, lässt dieser logischerweise das Feld leer. Dann wird der aber der vererbte Value eingesetzt. Somit wird auch der Button immer gesetzt.

Gibt es hier eine Möglichkeit das Feld nicht zu vererben und getrennt vom Hauptshop zu pflegen? Oder benötige ich künftig zwingend einen weiteren Boolean in der Konfiguration, mit welchem ich steuere, ob der Button angezeigt wird, oder nicht?

Geht es um einen Button im FE? Warum prüfst du nicht einfach ob das Value in der Config leer ist - falls nicht zeige Button. Falls ja, kein Button.

Hi @Misengo‍

Danke für deine Antwort.

Genau, es geht um einen Buttom im Frontend. Und genau das habe ich ja gemacht. Der Value ist aber nicht leer, da automatisch vererbt wird und der Inhalt aus dem Hauptshop drin steht, selbst wenn das Feld im Backend in der Konfiguration im Subshop leer ist. Folglich wird der Button im Subshop angezeigt.

@zenit‍ da wäre mir nichts bekannt. Du könntest es noch über ein Zeichen (Leerzeichen oder - UND das dann beim setElement mit ‚value‘ => setzen) abfangen, aber sobald der Kunde dann das Feld löscht, geht das wieder in die Binsen. 

Sichere Variante ist auf jeden Fall ein Dropdown mit „Button anzeigen“ zu definieren.

@Misengo‍

Jepp, habe es mit einem “Boolean” umgesetzt.

Schön wäre, wenn man an dem Element in der Konfid einen Flag setzen könnte, dass es nicht erben soll…

Hallo.

Ich greife das mal auf…

Ist das wirklich normal, dass die Daten aus den “übergeordneten” Shops durchgeschliffen/vererbt werden oder doch eher ein Bug?

Zudem greift ein “required=true” in der config.xml nicht.

 

Gibt es da eine Lösung?

Ich kann vor dem “assign” für Smarty auch keine Abfrage machen ob der Wert leer ist, da Shopware die Daten durchreicht.

Bsp:

$this->config = $configReader->getByPluginName($pluginName, Shopware()->Shop());

if(!empty($this->config[‘swagSloganContent’])) {

$view->assign(‘swagSloganContent’, $this->config[‘swagSloganContent’]);

}

$this->config[‘swagSloganContent’] ist für subshop2 mit dem wert aus subshop1 befüllt wenn bei subshop2 leer gelassen wurde, was nicht gehen sollte, da required.

 

Ich hoffe es ist verständlich was ich meine?

 

Danke.