tal:repeat
Dieses Attribut arbeitet auf abzählbaren Objekten wie Feldern, assoziativen Feldern oder Objekten, die die PHP5 Iterator
Klasse implementiert.
Das tal:repeat
Attribut wiederholt seine Auszeichnung und seinen Inhalt solange, bis es am Ende der angegebenen Quelle (Feld, Objekt) angekommen ist.
<tr tal:repeat="item some/result">
<td tal:content="item">text replaced by item</td>
</tr>
Innerhalb einer solchen Schleife können Sie mit speziellen repeat/
Pfaden auf aktuelle Schleifenzustände (und die ihrer Eltern für verschachtelte Schleifen) zugreifen.*
In obigen Beispiel liefert
repeat/item/key
: den Elementenschlüssel, wenn some/result eine assoziative Quelle ist (sonst den Index)
repeat/item/index
: den Elementenindex (0 bis Gesamtanzahl-1)
repeat/item/number
: die Elementennummer (1 bis Gesamtanzahl)
repeat/item/even
: wahr, wenn der Index des Elementes gerade ist
repeat/item/odd
: wahr, wenn der Index des Elementes ungerade ist
repeat/item/start
: wahr, wenn das Element das erste ist
repeat/item/end
: wahr, wenn das Element das letzte ist
repeat/item/length
: die Anzahl der Elemente in some/result
item
ist die Variable, die im tal:repeat
Ausdruck definiert wird.
tal:repeat
wird in den meisten Fällen auf das Ergebnis einer SQL Datenbankabfrage angewendet werden. Der folgende Code funktioniert wenn playersRanking
ein Objekt enthält, das das PHP Iterator
Interface implementiert:
<table>
<thead>
<tr>
<th>Position</th>
<th>Player</th>
<th>Score</th>
</tr>
</thead>
<tbody>
<tr tal:repeat="ranking playersRanking">
<td tal:content="ranking/position"/>
<td tal:content="ranking/player"/>
<td tal:content="ranking/score"/>
</tr>
</tbody>
</table>