Zur Navigation

Smarty Variable in PHP benutzen? [4]

31 Horst_Braun

Juhu, damit bekomme ich meine 66 angezeigt.

Das ganze steht aber in einer Schleife:
{foreach item=galerie from=$galerie_liste}

Somit brauche ich bei jedem Durchlauf die aktuelle gal_id und nicht immer die 66.

01.06.2013 22:13

32 Jörg

Aha, dann entspricht $galerie sozusagen einem $galerie_liste[$i]. Nur ist fraglich, dass man das $i in den PHP-Abschnitt bekommt, wo man es mit $galerie schon nicht geschafft hat.

Nochmal zurück zu Beitrag 16:

Zitat von Horst_Braun
Also:

{php}
global $galerie;
echo $galerie->gal_id;
{/php}

Geht nicht.

"Geht nicht" heißt, es wurde nichts ausgegeben, aber auch keine Fehlermeldung mehr, wie in Beitrag 14?

Du kannst ja nochmal mit var_dump testen, ob irgendwas brauchbares in $galerie enthalten ist

 {php}
 global $galerie;
echo '<pre>';
var_dump($galerie);
echo '</pre>';
 {/php}

01.06.2013 22:59 | geändert: 01.06.2013 23:03

33 Horst_Braun

Bei
{php}
global $galerie;
echo $galerie->gal_id;
{/php}
kommt nichts. Auch keine Fehlermeldung.

Bei
 {php}
 global $galerie;
echo '<pre>';
var_dump($galerie);
echo '</pre>';
 {/php}
kommt wieder ganz viel. Irgenwo hab ich ["galerie_liste"]=> array(56) { [0]=> array(25) { ["gal_id"]=> string(2) "66" gefunden.

02.06.2013 14:49

34 Horst_Braun

Ich verstehe nicht warum innerhalb der Schleife {$galerie.gal_id} die aktuelle ID des Schleifendurchlaufes zeigt, aber im PHP das ArrayFeld mit festgelegt werden muss.

03.06.2013 10:26

35 Jörg

Das $galerie hier ...:

 {php}
 global $galerie;
echo '<pre>';
var_dump($galerie);
echo '</pre>';
 {/php}
kommt wieder ganz viel. Irgenwo hab ich ["galerie_liste"]=> array(56) { [0]=> array(25) { ["gal_id"]=> string(2) "66" gefunden.

... entpspricht anscheinend nicht diesem galerie hier:

{foreach item=galerie from=$galerie_liste}

Du hast den {php} Block schon innerhalb der foreach Schleife platziert?

Vermutlich führt Smarty als erstes den PHP-Code im {php} Block aus, unabhängig von irgendwelchen Schleifen und Bedingungen im Template. An das jeweilige gal_id kommst du so wohl nicht ran, weil bei PHP-Code schon vor dem Schleifendurchlauf ausgeführt wurde

Die einzige Möglichkeit, die ich dann noch sehe:
Falls in der Schleife nur dein PHP-Code ausgeführt werden soll, d.h. keine sonstigen Template-Ausgabe, könntest du die Schleife vielleicht in den {php} Block verlegen, d.h. anstelle der Template-Schleife außerhalb des {php} Blocks eine PHP-Schleife innerhalb des {php} Blocks verwenden.

03.06.2013 10:48 | geändert: 03.06.2013 10:48

36 Horst_Braun

{foreach item=galerie from=$galerie_liste} kann ich nicht einfach so in den PHP Teil nehmen, weil der Syntax ja nicht stimmt.

foreach (item=galerie from=$galerie_liste) geht auch nicht

03.06.2013 11:17

38 Horst_Braun

Das geht. Somit muss ich zwar alle Smarty-Befehle mit in das PHP nehmen, aber dann geht alles.

Traumhaftes Arbeiten.

PS: Ich glaube bis jetzt wurde hier im Forum jedes meiner Probleme gelöst.

Vielen Dank.

03.06.2013 13:32

Beitrag schreiben (als Gast)





[BBCode-Hilfe]