MTIf
条件文の対象となる MTSetVar ファンクションタグに設定した変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数を利用して条件文を作成します。MTIf ブロックタグは条件を満たした場合にのみ実行します。MTUnless は MTIf の逆で条件を満たさない場合にのみ実行します。
MTIf ブロックの中で MTUnless の結果と同じ結果を得たい場合は MTElse ブロックタグと組み合わせることで、条件を満たさない場合の実行内容も設定できます。
使い方
<mt:SetVar name="love" value="polar bear">
<mt:If name="love" eq="elephant">
<p>私はゾウを愛しています</p>
<mt:ElseIf name="love" eq="polar bear">
<p>私はゾウより、シロクマを愛しています</p>
<mt:Else>
<p>私はゾウもシロクマも愛していないのです</p>
</mt:If>
モディファイア
- name="foo"
-
条件文の対象となる MTSetVar ファンクションタグに設定した name モディファイアの値を設定します。このモディファイアの値でどの値で条件分岐を行うかを決定します。このモディファイアは必須です。
さらに条件を細かく設定できます。何も指定しない場合は、MTSetVar ファンクションタグに value モディファイアが設定されていて、その値が 0 または なし(未設定) ではない場合にのみ実行します。
- like="foo"
-
MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数に foo が含まれる場合にのみ実行します。
<MTSetVar name="elephant" value="love"> <MTIf name="elephant" like="lo"> <p>値が elephant の name モディファイアを持つ MTSetVar ファンクションタグの変数に lo が含まれるので、この段落は表示されます。</p> </MTIf>
like モディファイアでは Perl の正規表現を利用できます。以下の例では name モディファイアに指定した変数の値が bar か baz で始まる場合にのみ実行します。
<$mt:SetVar name="elephant" value="barcamp"$> <mt:If name="elephant" like="^(bar|baz)"> <p>変数 elephant の値が bar もしくは baz で始まるので、この段落は表示されます。</p> </mt:If>
- eq="foo"
-
MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数が foo と一致する場合にのみ実行します。
<MTSetVar name="elephant" value="love"> <MTIf name="elephant" eq="love"> <p>値が elephant の name モディファイアを持つ MTSetVar ファンクションタグの変数が love と一致するので、この段落は表示されます。</p> </MTIf>
- ne="foo"
-
MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数が foo と一致しない場合にのみ実行します。
<MTSetVar name="elephant" value="love"> <MTIf name="elephant" ne="like"> <p>値が elephant の name モディファイアを持つ MTSetVar ファンクションタグの変数が like と一致しないので、この段落は表示されます。</p> </MTIf>
- lt="foo"
-
MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数が foo よりも小さい場合にのみ実行します。
<MTSetVar name="age" value="28"> <MTIf name="age" lt="30"> <p>値が age の name モディファイアを持つ MTSetVar ファンクションタグの変数が 30 より小さいので、この段落は表示されます。</p> </MTIf>
- gt="foo"
-
MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数が foo よりも大きい場合にのみ実行します。
<MTSetVar name="age" value="28"> <MTIf name="age" gt="26"> <p>値が age の name モディファイアを持つ MTSetVar ファンクションタグの変数が 26 より大きいので、この段落は表示されます。</p> </MTIf>
- le="foo"
-
MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数が foo 以下の場合にのみ実行します。
<MTSetVar name="age" value="28"> <MTIf name="age" le="100"> <p>値が age の name モディファイアを持つ MTSetVar ファンクションタグの変数が 100 以下なので、この段落は表示されます。</p> </MTIf>
- ge="foo"
-
MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数が foo 以上の場合にのみ実行します。
<MTSetVar name="age" value="28"> <MTIf name="age" ge="28"> <p>値が age の name モディファイアを持つ MTSetVar ファンクションタグの変数が 28 以上なので、この段落は表示されます。</p> </MTIf>
- tag="MTtagName"
-
指定したMTタグに値がある場合は true (真)。無い場合は false (偽) を返します。
- op
-
op モディファイアに関しては、テンプレートタグで利用できる演算関数を参照ください。