MTUnless
設定した条件により実行内容を分けるためのブロックタグです。MTSetVar ファンクションタグや、MTSetVarBlock, MTSetVarTemplate ブロックタグで定義した変数を用いて条件文を作成します。
このタグは条件を満たさなかった場合に実行します。条件を満たした場合に実行する場合は、MTIf ブロックタグを使用するか、MTUnless ブロックタグの中で MTElse ブロックタグを使用します。
- 使い方
<$mt:SetVar name="hate" value="polar bear"$>
<mt:Unless name="hate" eq="elephant">
<p>私はゾウが嫌いです</p>
<mt:Else>
<p>私はゾウを嫌っていません</p>
</mt:Unless>
モディファイア
- name="foo"
-
条件文の対象となる変数の名前 (MTSetVar ファンクションタグなどで設定した name モディファイアの値) を設定します。このモディファイアの値をもとに条件分岐がおこなわれます。MTIf タグの使用には、このモディファイアもしくは tag モディファイアのいずれかが必須です。もしいずれのモディファイアも指定していない場合は、必ず true (真) を返します。
name 以外にモディファイアを指定しない場合は、指定した変数の値の有無で判定します。指定したテンプレートタグに 0 以外の値がある場合は false (偽)、0 もしくは値が無い場合は true (真) を返します。
<$mt:SetVar name="elephant"$> <mt:Unless name="elephant"> <p>変数 elephant に値がないので、この段落は表示されます。</p> </mt:Unless>
- tag="TagName"
-
Movable Type のテンプレートタグを指定します。指定したテンプレートタグの出力値をもとに条件分岐がおこなわれます。接頭辞の
MT
は省略できます。name モディファイアとの併用はできません。併用した場合は name モディファイアが優先されます。tag 以外にモディファイアを指定しない場合は、指定したテンプレートタグの値の有無で判定します。指定したテンプレートタグに 0 以外の値がある場合は false (偽)、0 もしくは値が無い場合は true (真) を返します。
<mt:Unless tag="CategoryLabel" eq="foo"> <p>MTCategoryLabel タグの出力内容が foo でないので、この段落は表示されます。</p> </mt:Unless>
さらにモディファイアを指定して条件を細かく設定できます。何も指定しない場合は、name もしくは tag モディファイアに指定した変数に 0 以外の値がある場合にのみ実行します。
- like="foo"
-
指定した変数の値に foo が含まれない場合にのみ実行します。
<$mt:SetVar name="elephant" value="love"$> <mt:Unless name="elephant" like="foo"> <p>変数 elephant の値に foo が含まれないので、この段落は表示されます。</p> </mt:Unless>
like モディファイアでは Perl の正規表現を利用できます。以下の例では name モディファイアに指定した変数の値が bar か baz で始まらない場合にのみ実行します。
<$mt:SetVar name="elephant" value="bagcamp"$> <mt:Unless name="elephant" like="^(bar|baz)"> <p>変数 elephant の値が bar もしくは baz で始まらないので、この段落は表示されます。</p> </mt:Unless>
- eq="foo"
-
指定した変数の値が foo と一致しない場合にのみ実行します。
<$mt:SetVar name="elephant" value="love"$> <mt:Unless name="elephant" eq="hate"> <p>変数 elephant の値が love と一致しないので、この段落は表示されます。</p> </mt:Unless>
- ne="foo"
-
指定した変数の値が foo と一致する場合にのみ実行します。
<$mt:SetVar name="elephant" value="love"$> <mt:Unless name="elephant" ne="love"> <p>変数 elephant の値が love と一致するので、この段落は表示されます。</p> </mt:Unless>
- lt="foo"
-
指定した変数の値が foo よりも大きい場合にのみ実行します。
<$mt:SetVar name="age" value="32"$> <mt:Unless name="age" lt="30"> <p>変数 elephant の値が 30 より大きいので、この段落は表示されます。</p> </mt:Unless>
- gt="foo"
-
指定した変数の値が foo よりも小さい場合にのみ実行します。
<$mt:SetVar name="age" value="28"$> <mt:Unless name="age" gt="30"> <p>変数 elephant の値が 30 より小さいので、この段落は表示されます。</p> </mt:Unless>
- le="foo"
-
指定した変数の値が foo 以上の場合にのみ実行します。
<$mt:SetVar name="age" value="120"$> <mt:Unless name="age" le="100"> <p>変数 elephant の値が 100 以上なので、この段落は表示されます。</p> </mt:Unless>
- ge="foo"
-
指定した変数の値が foo 以下の場合にのみ実行します。
<$mt:SetVar name="age" value="80"$> <mt:Unless name="age" ge="100"> <p>変数 elephant の値が 100 以下なので、この段落は表示されます。</p> </mt:Unless>
- op
-
op モディファイアに関しては、ドキュメント: テンプレートタグで利用できる演算関数を参照ください。
- index
-
配列のインデックス (添え字) を指定して、配列の変数から値を取り出します。
<mt:Unless name="foo" index="0" eq="hoge">
このタグは以下のようにも書くことができます。
<mt:Unless name="foo[0]" eq="hoge">
名前[添え字]
という記述がindex
モディファイアの代わりです。 - key
-
ハッシュのキーを指定して、ハッシュの変数から値を取り出します。
<mt:Unless name="bar" key="a" eq="hoge">
このタグは以下のようにも書くことができます。
<mt:Unless name="bar{a}" eq="hoge">
名前{キー}
という記述がkey
モディファイアの代わりです。 - test
-
Perl の式を記述することができ、結果を利用して条件分岐をおこないます。