条件処理するコンディショナルタグ

wrote2008.04.27

If文

<MTIf 条件式A>
条件式Aが真の場合の処理
</MTIf>

<MTIf 条件式A>
条件式Aが真の場合の処理
<MTElse>
条件式Aが偽の場合の処理
</MTElse>
</MTIf>

<MTIf 条件式A>
条件式Aが真の場合の処理
<MTElseIf 条件式B>
条件式Aが偽で、Bが真の場合の処理
<MTElse>
条件式AとBが偽の場合の処理
</MTElse>
</MTElseIf>
</MTIf>

MTElse、MTElseIfブロックタグの閉じタグ</MTElse>、</MTElseIf>はそれぞれ省略することができる。

比較演算子

<MTSetVar name="music" value="条件変数">
<MTIf name="music" 比較演算子="設定値">
条件が真の場合
</MTIf>

比較演算子 真の条件
like 設定値が条件変数に一部でも含まれる  
eq 設定値が条件変数に一致 条件変数 == 設定値
ne 設定値が条件変数に一致しない 条件変数 != 設定値
lt 設定値が条件変数より大きい 条件変数 < 設定値
gt 設定値が条件変数より小さい 条件変数 > 設定値
le 設定値が条件変数以上 条件変数 <= 設定値
ge 設定値が条件変数以下 条件変数 >= 設定値

組み込み変数

繰り返し処理される中で代入される値が変化する。

<ul>
<MTEntries>
<li<MTIf name="__counter__" lt="3"> class="new"</MTIf>><$MTEntryTitle$></li>
</MTEntries>
</ul>

比較する値「3」がcounterの値より大きいならば真。つまり、counterの値が1か2の場合に真となる。というわけで、1、2番目の処理においてのみ、class属性「new」が付与される。

書式 繰り返し処理に対して
__first__ 最初の出力に反映(1が代入される)
__last__ 最後の出力に反映(1が代入される)
__odd__ 奇数回目の出力に反映(それぞれ1が代入される)
__even__ 偶数回目の出力に反映(それぞれ1が代入される)
__index__ インデックスを値として代入していく(?)
__counter__ 処理が行われる度に1ずつ増える

ほかにも、たとえば変数に代入した値を、加算・減算・乗算・除算して代入したり、配列を作成するテンプレートタグやモディファイア、条件を繰り返し処理を生成するテンプレートタグなどが用意されている。

そのほかのコンディショナルタグ、モディファイア

<MTIfNonEmpty tag="ファンクションタグ">
ファンクションタグがある場合の処理
</MTIfNonEmpty">

MTIfNonEmpty tag="値"、直訳すると「tagの値が空っぽでないなら」