mtde.info

Movable Type Developers Express

繰り返し処理における予約変数

2008年4月11日 00:02 | Writer: apstar | 記事本文

Movable Type では、ループ(繰り返し処理)において、以下のような予約変数を用いることができます。

__first__
ループ先頭の場合、実行されます。
__last__
ループ末尾の場合、実行されます。
__odd__
ループ奇数回目の場合、実行されます。
__even__
ループ偶数回目の場合、実行されます。
__index__
ループインデックスを、格納します。
__counter__
ループ回数を、格納します。

書き方は、MTForループで使用する場合は、以下を参考にしてください。

<MTFor var="x" from="1" to="10">

   <MTIf name="__first__">
      <p>先頭:<MTGetVar name="x"></p>
   </MTIf>

   <MTIf name="__last__">
      <p>末尾:<MTGetVar name="x"></p>
   </MTIf>

   <MTIf name="__odd__">
      <p>奇数:<MTGetVar name="x"></p>
   </MTIf>

   <MTIf name="__even__">
      <p>偶数:<MTGetVar name="x"></p>
   </MTIf>

   <MTIf name="__counter__">
      <p>カウンタ:<MTGetVar name="x"></p>
   </MTIf>

</MTFor>

MTForのほかに、MTLoop、MTEntries、MTCategoriesなどの、繰り返し処理を行えるブロックタグで使用することができます。また、そのループ中において条件分岐を行うMTIfでも使用することができます。

また、これらの予約変数は、既に代入(MTSetVar)されたものとして、通常の変数と同じように取り扱うことができます。以下のサンプルコードでは、MTGetvarテンプレートタグでループのインデックスを取得します。

<MTFor var="x" from="1" to="10">

   <MTGetVar name="__index__">

</MTFor>

この機能を用いたストライプ柄のエントリリストのサンプル

MTEntriesブロックタグを用いエントリリストを生成します。このとき、リストの背景色を、奇数回を白、偶数回を灰色とします。

CSS

.odd {
background:#ffffff;
}

.even {
background:#cccccc;
}

エントリリストのコード

<ul>
<MTEntries lastn="10">
<li class="<MTIf name="__odd__">odd<MTElse>even</MTIf>"><a href="<MTEntryPermaLink>"><MTEntryTitle></a></li>
</MTEntries>
</ul>

注意点

MTForで__index__、__odd__、__even__を用いる場合は、以下の点に注意してください。

変数

2008 mtde.info