Hallo!
Ich versuche gerade eine Variable per View()->assign zu setzen. DIe Variable wird im Listing korrekt übergeben, allerdings ist sie im Topseller-Widget NULL obwohl Sie einen Wert hat.
Wie kann ich Variablen an das Template übergeben, so dass diese auch in einem Widget korrekt übergeben werden?
Viele Grüße!
Hat sich erledigt.
Ich setzte die Variable nun zusäzlich im Event
**Shopware\_Controllers\_Widgets\_Listing::topSellerAction::after**
Hi,
im Zusammenhang mit Widgets gibt es da zwei Aspekte zu beachten:
* Handelt es sich um Ajax-Widgets, haben die natürlich nicht die Template-Variablen zur Verfügung, die auf dem Rest der Seite vorhanden sind. Entsprechend muss man dann in der Regel ein eigenes Post-Dispatch-Event für das Widget registrieren oder zu not ein global(er)es PostDispatch-Event nutzen
* Handelt es sich um Smarty-Action Tags, KANN ein Template Assignment des umgebenden Templates auch im Widget zur Verfügung stehen - wenn der HTTP-Cache abgeschaltet ist. D.h. da stößt man in der Regel auf Probleme, wenn man lokal ohne Cache entwickelt und es dann mit Cache irgendwo testet. Das hängt damit zusammen, dass Widgets abhängig vom Vorhandensein des Caches unterschiedlich aufgelöst werden. Da ist es also auf jeden Fall gute Praxis, sich nicht darauf zu verlassen, dass das Template-Assignment des umgebenden Templates auch im Widget-Call vorhanden ist.
Insofern sollte deine Lösung also passen - wollte nur eben die Erklärung hinterher geschoeben haben.
Besten Gruß
Daniel
1 „Gefällt mir“