Template-Toolkit(以下TT)での
一般的なループのさせ方は
[%FOREACH value=loop%] 名前は:[%value.name%]です。 [%END%]
このループのループ回数を利用して何か処理をしたい場合は予約オブジェクト「loop」というのが使用できる。
loop.size リストの要素数
loop.max 最後の要素のインデックス (size - 1)
loop.index 0からmax()のうちの、現在の繰り返し処理のインデックス
loop.count 1からsize()のうちの、現在の繰り返し処理のカウント(index() + 1)
loop.first 現在の処理が一番最初の処理であれば真
loop.last 現在の処理が一番最後の処理であれば真
loop.prev リストのうち、一つ前のアイテムを返す
loop.next リストのうち、一つ次のアイテムを返す
では、この変数を用いて「3回繰り返すごとに改行タグを入れる」といった
処理はどう行うかというと
[%FOREACH value=loop%] 名前は:[%value.name%]です。 [%IF (loop.count mod 3)==0 %]<br>[%END%] [%END%]
※注意
○ [%IF (loop.count mod 3)==0 %] × [%IF (loop.count%3)==0 %]
なので注意。