Neuigkeiten:

still alive...

Hauptmenü

foreach Schleifen in templates...

Begonnen von xabbu, 02. August 2006, 14:42:27

Vorheriges Thema - Nächstes Thema

xabbu

Hi zusammen,
viele von Euch kennen bestimmt \"Template-Engines\" wie smarty oder ähnliches.
Bei Smarty, z.B., gibt es ja die \"foreach\" Funktion die so aussieht:
 


{foreach from=FROM_ARRAY item=ZIEL_ITEM key=ZIEL_KEY}
schleifen code
{/foreach}

 
 
Ein verschachteln von Schleifen ist ja ebenso prolemlos möglich.
Nun meine Frage:
Ich habe mal im Smarty Code geschaut, wie die das gemacht haben, bin aber leider nicht ganz schlau draus geworden. Ich habe deswegen mal versucht es nachzubauen.
Eine einfache foreach Schleife ist kein Problem, aber so wie ich sie verschachteln möchte, geht es nicht mehr.
Ich habe es mit dem folgenden pattern versucht:
 



 
 
So bekomme ich als Ergebnis das folgende Array zurück:


Array
(
   
  • => Array
      (
           
  • => {foreach from=testvar item=items key=keys}
{keys} -- {items}
 
{/FOREACH}
           [1] =>  from=testvar item=items key=keys
           [2] =>
{keys} -- {items}
 
       )
)

 
 
So kann man dann die Elemente auch schön ersetzen.
Verschachtel ich die Schleifen allerdings so:
 


{FOREACH from=testvar item=items key=keys}
{keys} -- {items}
 
{FOREACH from=items item=subItem key=subKeys}
  {subItem}  {subKeys}
{FOREACH from=subItem item=subItem2 key=subKeys2}
     {subItem2}  {subKeys2}
{/FOREACH}
{/FOREACH}
{keys} -- {items}
{/FOREACH}

 
 
Dann klappt das ganze nicht mehr und ich bekomme folgendes Array zurück:
 


Array
(
   {0} => Array
       (
           {0} => {FOREACH from=testvar item=items key=keys}
{keys} -- {items}
 
{FOREACH from=items item=subItem key=subKeys}
  {subItem}  {subKeys}
{FOREACH from=subItem item=subItem2 key=subKeys2}
     {subItem2}  {subKeys2}
{/FOREACH}
           {1} =>  from=testvar item=items key=keys
           {2} =>
{keys} -- {items}
 
{FOREACH from=items item=subItem key=subKeys}
  {subItem}  {subKeys}
{FOREACH from=subItem item=subItem2 key=subKeys2}
     {subItem2}  {subKeys2}
       )
)

 
 
Ich habe echt schon ewig rum probiert mit dem pattern, aber ich komme leider nicht weiter. Vielleicht ist mein Ansatz auch einfach falsch.
Ich hoffe, jemand macht sich die Mühe und liest meinen Thread durch und kann mir dann bei meinem Problem helfen.
Gruß
 Xabbu

all your base are belong to us