Manual
2.3. tal:repeat
Atrybut ten obsługuje obiekty iteracyjne takie jak tablice, tablice asocjacyjne i obiekty implementujące klasę PHP5 Iterable.
Atrybut ten iteruje po elementach i ich zawartości aż do końca zdefiniowanego źródła.
<tr tal:repeat="item some/result"> <td tal:content="item">text replaced by item</td> </tr>
Wewnątrz pętli masz dostęp do informacji o aktualnym elemencie (oraz jego rodzica w przypadku pętli zagniedżonej) poprzerz specjalne ścieżki repeat/*.
W powyższym przykładzie :
- repeat/item/index : zwraca indeks elementu (od 0 do ilośc_elementów-1)
- repeat/item/number : zwraca numer elementu (od 1 do ilośc_elementów)
- repeat/item/even : zwraca TRUE, jeśli indeks elementu jest parzysty
- repeat/item/odd : zwraca TRUE, jeśli indeks elementu jest nieparzysty
- repeat/item/start : zwraca TRUE, jeśli element jest pierwszy
- repeat/item/end : zwraca TRUE, jeśli element jest ostatni
- repeat/item/length : zwraca ilość elementów
- repeat/item/key : zwraca klucz elementu jeśli element jest asocjacyjny (w przeciwnym przypadku zwróci indeks elementu)
Nazwa elementu item jest zdefiniowana w wyrażeniu tal:repeat.
Najczęściej z tal:repeat korzysta się przy przetwarzaniu wyników zapytań SQL z bazy danych :
<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>