ottschoottscho MitgliedKommentare: 2585 Danke erhalten: 255 Mitglied seit: Oktober 2010 bearbeitet April 2015
Hallo zusammen,

gibt es eine einfache Methode im Backend / Views JS Bereich an Shopware oder Plugin Config Einstellungen zu kommen?

PHP Seitig mache ich dies ja mit $this->config()

D.h. ich benötige in einer Backend Erweiterung Einstellungen aus der Plugin Config.

Danke im Voraus.

Kommentare

  • PickwarePickware MitgliedKommentare: 340 Danke erhalten: 103 bearbeitet April 2015 Mitglied seit: August 2012
    Hallo Ottscho,

    wir hatten gestern in einem Plugin dieselbe Anforderung, in diesem Fall konnten wir das lösen, indem wir per Smarty die Konfiguration auslesen und so in den Javascript Code einfügen.

    Grundsätzlich kann man folgendermaßen aus Smarty heraus auf die Plugin-Konfiguration zugreifen (angenommen, der Plugin-Name ist "ViisonAddressLabel"):
    {Enlight_Application::Instance()->Plugins()->Backend()->ViisonAddressLabel()->Config()->get('showButtonInOrderList', true)}
    
    In unserem Fall war die Option vom Typ boolean, da musste man noch etwas tricksen, um in Javascript auch wirklich true oder false zu erhalten:
    {if Enlight_Application::Instance()->Plugins()->Backend()->ViisonAddressLabel()->Config()->get('showButtonInOrderList', true)}true{else}false{/if}
    
    Natürlich funktioniert diese Vorgehensweise nur, wenn schon beim Laden des Javascript-Codes bekannt ist, auf welche Option zugegriffen werden soll. Ebenfalls werden Änderungen an den Plugin-Optionen erst nach Neuladen des Browsers inkl. Browser-Cache übernommen. Wenn du dynamisch auf die Plugin-Optionen zugreifen möchtest, wird dir nichts anderes übrig bleiben, als dir einen Backend Controller zu schreiben, der dann den Wert der entsprechenden Option per AJAX zurückliefert.

    Beste Grüße
    Andre Wisplinghoff
    VIISON GmbH
  • Daniel NögelDaniel Nögel AdministratorKommentare: 1560 Danke erhalten: 382 Mitglied seit: September 2012
    Hi,

    es gibt gibt die Smarty-Funktion {config name="meine-config" namespace="MeinPlugin"}, die ihr auch nutzen könnt.

    lG

    Daniel
  • PickwarePickware MitgliedKommentare: 340 Danke erhalten: 103 Mitglied seit: August 2012
    Hi Daniel,

    danke für den Tipp, das ist so natürlich schon mal etwas einfacher. Mit booleans kommt diese Funktion allerdings auch nicht gut zurecht, statt false produziert auch diese einen leeren String - von daher ist auch hier in diesem Fall noch Nacharbeit vonnöten.

    Beste Grüße
    Andre
  • EikeWarnekeEikeWarneke ModeratorKommentare: 2728 Danke erhalten: 566 Mitglied seit: Juni 2013
    Du brauchst natürlich eine Instanz vorher, die gültige Daten ausspuckt:
    var meinBoolean = ("{config name='meine-config' namespace='MeinPlugin'}" != "");
    
    Nun hast du ein boolean Wert.

    Viele Grüße
  • ottschoottscho MitgliedKommentare: 2585 Danke erhalten: 255 Mitglied seit: Oktober 2010
    super, ich danke allen für den Input
  • coarsycoarsy MitgliedKommentare: 484 Danke erhalten: 37 Mitglied seit: Januar 2015

    Funktioniert das Ganze noch mit dem neuen Pluginsystem? Ich komme da nämlich nicht an die Variablen ran...

  • DannyDanDannyDan MitgliedKommentare: 59 Danke erhalten: 6 Mitglied seit: Juli 2015

    Moin,

    zwar schon ein wenig älter aber ich hab das gerade erfolgreich im neuen Pluginsystem einsetzen können.

    Danny

Anmelden oder Registrieren, um zu kommentieren.