Snippets aus .ini Dateien

Hallo zusammen,

ich hab 2 Fragen zu Snippets.

  1. Gibt es die möglichkeit smarty Vatiablen in Snippets unterzubringen?

  2. Kann man bei der Neu-Installation oder Update eines Plugins welches die eigenen Übersetzungen in .ini Dateien mitbringt die Textbausteine jedes mal aus den ini dateien zu aktualisieren?

 

Vielen Dank im Voraus und viele Grüße

Hallöle,

zu 1:

Ja das funktioniert. Einfach {$lala} in den Snippet schreiben. Die Variable muss es natürlich im entsprechenden View geben.

zu 2:

Ich glaube alle Snippets die nicht dirty sind (also nicht im Backend geändert wurden) werden beim neuinstallieren des Plugins aus der ini in die DB geschrieben. Bei einem Update bin ich mir gerade nicht so sicher. Aber schlau wäre es :slight_smile: Hast du es mal getestet?

Hi,

hm so mache ich es aber leider klappt es nicht, gilt das ganze denn auch fürs backend?

EDIT

Das hab ich vergessen zu erwähnen dass die Variable an ein snippet im backend gereicht werden soll…
Snippets aktualisieren sich jetzt über die ini dateien… keine ahnung was das bei mir war vorher …
 

Aber Punkt 1 funktioniert noch nicht? Ich kann dir bei deinem Problem nicht ganz folgen. Mach mal ein Beispiel.

Sorry für die Verwirrung  Foot-in-Mouth

Also das mit den Snippets aus ini dateien klappt soweit, ich weiß nciht woran das bei mir lag, vielleicht am cache.

Was nicht funktioniert, sind variablen in Snippets im Backend.

Was ich mache ist im Backend controller, in der Action in der ich Einstellungen meines Plugins lade, assigne ich eine Variable an die View. Dessen Wert mit den Einstellungen aus der DB geladen wird.

 $this-\>View()-\>assign('meineVar', $data['meinWert']);

 

Dann habe ich ein snippet mit einer URL im backend bei dem ich “meineVar” als Parameter an die URL anhänge :

testen

Jedoch sieht die URL im Backend immer so aus:

 

https://www.meineurl.com/page?id=

 

Ich hoffe das verschafft etwas Klarheit in mein Vorgehen :smiley:

 

 

Hallo @wabAB‍,

das müsste aber im Normalfall so funktionieren, das machen wir in Shopware selbst ja auch hin und wieder.
Wird {$meineVar} denn korrekt ausgegeben, wenn du das Snippet weglässt und das Ganze hardcoded so ins Template packst?

Damit müsste sich ja feststellen lassen, ob das wirklich nur im Zusammenhang mit Snippets auftritt.
Das sieht mir eher nach einem generellen Problem aus.

Gruß,
Patrick  Shopware

Hallo Patrick,

ich habe jetzt mal die URL ohne das snippet in den Code reingeschrieben, nun habe ich da schonmal mehr stehen und zwar eine “0” statt meiner id die ich eigentlich übergebe.

 

 items: [
                            {
                                xtype: 'displayfield',
                                value: 'testen'
                            },
...
]

 

Hallo @wabAB‍,

in deiner letzten Antwort sehe ich jetzt auch das Problem.
im Backend ist es eigentlich nicht vorgesehen derartige View-Variablen zu nutzen.

Es ist zwar in der Tat so, dass unsere Backend-Templates ebenfalls von Smarty geparsed werden und soetwas theoretisch möglich ist, jedoch haben wir für das Backend einen anderen “ViewRenderer” im Einsatz.
Dies bedeutet, dass View-Assignments nicht an die Smarty-View gereicht werden, sondern als JSON String geparsed und dann in die Response gepackt werden.

Das mit den View-Assignments *kann* aber trotzdem funktionieren, ist aber davon abhängig wo du das View-Assignment machst.
Du sagst, dass du das in der Action machst, in der du Einstellungen für dein Modul lädst. Das ist aber viel zu spät.
Dein Backend-Template wird direkt beim Öffnen des Moduls über die “loadAction” geparsed - zum Zeitpunkt des Ladens deiner Einstellungen ist das eigentliche Backend-Template schon lange vorhanden, ohne deinen View-Assignment.
Die View-Variable müsstest du schon in der loadAction zuweisen.

Long story short:
Eigentlich ist es nicht angedacht auf die Art im Backend zu arbeiten. :slight_smile:

Hilft dir das erstmal weiter?

Gruß,
Patrick  Shopware