ottschoottscho MemberComments: 2586 Received thanks: 258 Member since: October 2010 edited 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.

Comments

  • PickwarePickware MemberComments: 347 Received thanks: 111 edited April 2015 Member since: 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 AdministratorsComments: 1560 Received thanks: 384 Member since: September 2012
    Hi,

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

    lG

    Daniel
  • PickwarePickware MemberComments: 347 Received thanks: 111 Member since: 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 ModeratorComments: 2777 Received thanks: 593 Member since: June 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 MemberComments: 2586 Received thanks: 258 Member since: October 2010
    super, ich danke allen für den Input
  • coarsycoarsy MemberComments: 484 Received thanks: 37 Member since: January 2015

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

  • DannyDanDannyDan MemberComments: 59 Received thanks: 6 Member since: July 2015

    Moin,

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

    Danny

Sign In or Register to comment.