In einem Template mache ich über den “{php}”-Tag einen Ausflug in eine PHP-Routine. {php} include('meine\_php\_routine.php'); {/php}
Wie kann ich denn in dieser Routine die Smarty-Template Variablen des einbettenden Templates lesen/schreiben? In Smarty 2 war das noch recht übersichtlich, in der Smarty3/Shopware-Implementierung habe ich das noch nicht erkennen können… Ist sicher sehr einfach, wenn man weiß, welches Objekt und welche Getter/Setter dafür zuständig sind.
Warum baust du denn direkt PHP in das Template? Das sollte eigentlich wo es geht vermieden werden - kannst du dich da nicht besser irgendwo in den Controller hängen? Ansonsten gibt es hier: http://www.smarty.net/docs/en/language.function.php.tpl auch ein Beispiel wie man aus Variablen aus dem Smarty Scope zugreifen kann. Das ganze PHP-Include Handling ist aber in Smarty 3 bereits als deprecated markiert und wird wohl zukünftig entfernt.
[quote=“Stefan Hamann”] Ansonsten gibt es hier: http://www.smarty.net/docs/en/language.function.php.tpl auch ein Beispiel wie man aus Variablen aus dem Smarty Scope zugreifen kann.[/quote] Nein, genau das funktioniert eben bei Smarty3 nicht, da “$this” an der Stelle nicht definiert ist… Ich suche daher den Weg, wie ich z.B. über “Shopware()->…” oder evtl. “$smarty->…” (das Objekt ist definiert) die Templatevariablen lesen/schreiben kann.