Ich habe eine Frage zu der Übergabe von Variablen bei dem mehrfachen Aufrufen von Template Dateien mit dem include-Tag.
Meine listing.tpl ruft per foreach-tag für jeden Artikel meine box-article.tpl auf. Im listing habe ich mir 2 verschiedene Counter angelegt, welche in der box-article.tpl verändert werden.
Allerdings wird bei jedem Aufruf der box-article.tpl die Startwerte der Counter übergeben, anstatt dass die Änderungen aus der box-article.tpl gespeichert werden.
Zählst du denn die Variablen während der Schleife hoch?
Davon ist derzeit nämlich nichts zu sehen…
Wenn nichts hilft kannst du die Variable temporär in die Session schreiben und dann auf die Session-Variable zugreiffen, aber sehe keinen Grund wieso das nicht auch auf die herkömmliche Weise funktionieren sollte…
Danke für die schnelle Antwort.
Ja in der box-article.tpl wird die Counter Variable verändert. Einfach per {$varCounter = $varCounter + 1}.
Der Counter zählt aber nicht äquivalent zur foreach Schleife.
In die Session speichern ist wirklich ein wenig OP
zur not würde es auch gehen, den Code eingefügt zu lassen, aber es muss ja auch eine Möglichkeit geben Pointer zu verteilen oder nicht?
Ich kenne noch das {include file=“eineDatei” meineVar=$varCounter}
Aber da kopiert er glaube ich ja auch nur den Wert…
Laut Smarty-Handbuch kann man nur innerhalb von PHP Variablen by reference deklarieren.
Könntest du nicht einfach das Hochzählen innerhalb der Schleife setzen und nicht als Teil des include-Skripts?
Alternative wäre vielleicht noch ein Array, welches du während der Schleife erweiterst und dann einen Count darauf ausführst, aber das wäre noch schlimmer als die Session-Variable
Auf die Array-Idee hätte mein Kopf auch kommen können xD
Aber die Idee, das Hochzählen vorzuziehen, ist vielleicht eine gute Idee. Das Problem ist nur, dass es bereits die passenden Abfragen innerhalt der box-article.tpl gibt und ich nur noch ein Counter++ reinschreiben müsste. Wenn ich dann das Zählen hochziehe, würde ich ja trotzdem nur den Problem mit der Übergabe umgehen.
Denke, die Session lasse ich in Ruhe und füge meine Template einfach so ein.
Aber wenn es ohne weiteres nicht möglich ist, hab ich ja meine Antwort bekommen Danke dafür