MTFor
様々なプログラミング言語にある for ループをおこなうためのブロックタグです。指定された値の間、囲まれたコンテンツを繰り返し処理します。
- 使い方
<mt:For var="x" from="5" to="10" glue= " | ">
<mt:If name="__first__"><p>This is my first time through!</p></mt:If>
<p>now x = <$mt:Var name="x"$></p>
</mt:For>
モディファイア
- from
- start
-
ループ開始時の値を設定します。初期値は 0 です。
- to
- end
-
設定した値を越えた場合、ループは停止します。このモディファイアは必須です。
- increment
- step
-
1 回のループで増加する値を指定します。何も指定しない場合は、1 ずつ増加します。
例えば、from に 0、to に 10 と設定し、increment を 2 に設定した場合、0, 2, 4, 6, 8, 10 と増加します。
- glue="foo"
-
ループの各ブロックの間に表示する区切り文字を設定します。
- var
-
インデックスの値(__index__)を格納する変数名を指定します。
特別な変数
MTFor ブロックタグによるループの中では以下の特別な変数が利用できます。
- __first__
-
ループ出力の最初である場合 true (1) となります。
- __last__
-
ループ出力の最後である場合 ture (1) となります。
- __odd__
-
ループ出力の奇数回目の場合 ture (1) となります。
- __even__
-
ループ出力の偶数回目の場合 ture (1) となります。
- __index__
-
ループのインデックスを格納します。
- __counter__
-
ループした回数を格納します。
__index__ と __counter__ 変数の違いは以下のサンプルで確認することができます。__counter__ 変数は、ループした回数だけ 1 ずつ増えていきますが、__index__ 変数の値は、MTFor ブロックタグに設定した変数 test と同じループのインデックスを表示します。
<mt:For var="test" from="10" to="20" increment="2"> <p>now test = <$mt:Var name="test"$> | __index__: <$mt:Var name="__index__"$> | __counter__: <$mt:Var name="__counter__"$></p> </mt:For>
サンプルの出力例は以下のようになります。
<p>now test = 10 | __index__: 10 | __counter__: 1</p> <p>now test = 12 | __index__: 12 | __counter__: 2</p> <p>now test = 14 | __index__: 14 | __counter__: 3</p> <p>now test = 16 | __index__: 16 | __counter__: 4</p> <p>now test = 18 | __index__: 18 | __counter__: 5</p> <p>now test = 20 | __index__: 20 | __counter__: 6</p>