Macht etwas für jeden Eintrag aus dem Array $list.
{#FOREACH array=$list var=$item key=$itemkey index=$itemindex odd=$indexisodd limit=$limit}
{#SEC}
{#MID}
{#END}Wird array nicht angegeben, wird stattdessen der aktuelle Namespace verwendet.
Der Variable $item wird für jeden Schleifendurchlauf der aktuelle Eintrag aus dem array $list zugewiesen. Wird var nicht angegeben, dann sollte der aktuelle Eintrag selbst eine Array sein. der Aktuelle Namespace wird dann durch seine Einträge ergänzt. (siehe Beispiel)
In der Variable $itemkey wird der Schlüssel, unter dem der aktuelle Datensatz in $array angesprochen werden kann, gespeichert.
In $itemindex wird ein Index des Datensatzes gespeichert, beginnend bei 1 für den ersten Datensatz.
In $indexisodd wird gespeichert, ob $itemindex-1 ungerade ist. Für die den ersten Datensatz ist $indexisodd also 0, für den Zweiten 1, für den Dritten wieder 0, usw.
Der Parameter limit bestimmt, wieviele Elemente des Arrays array durchlaufen werden sollen. Damit lässt sich z.B. die Ausgabe der im Template auszugebenden Zeilen begrenzen.
Der Templatecode der Sektion {#SEC} wird, wenn angegeben, für jeden zweiten Datensatz an Stelle des Codes in {#FOREACH ...} verwendet.
Der Inhalt der Sektion {#MID} wird zwischen den Datensätzen ausgegeben.
Beispiel:
Variablen:
$list = array(
array("name" => "Peter", "age" => 28),
array("name" => "Alice", "age" => 19),
array("name" => "Bob", "age" => 21)
);
Templatecode:
{#FOREACH $list}
name: {%name}, age: {$age}
{#END}
Ausgabe:
name: Peter, age: 28
name: Alice, age: 19
name: Bob, age: 21
Located in /web/mod/mod.template.compiler.php (line 536)
_Cmd | --_CmdBlock | --_Cmd_Foreach
Inherited From _CmdBlock
_CmdBlock::add()
_CmdBlock::finish()
_CmdBlock::isBlock()
_CmdBlock::isValidSection()
_CmdBlock::newSection()
_CmdBlock::_compileArray()
Inherited From _Cmd
_Cmd::_Cmd()
_Cmd::compile()
_Cmd::getName()
_Cmd::init()
_Cmd::isBlock()
_Cmd::isValidParent()
Documentation generated on Mon, 22 Oct 2007 17:17:26 +0200 by phpDocumentor 1.3.1