PowerCMS™

MTUnless

MTUnless

条件文の対象となる MTSetVar ファンクションタグに設定した value モディファイアの値、または MTSetVarBlock, MTSetVarTemplate ブロックタグの持つデータを利用して条件文を作成します。MTUnless ブロックタグは条件に一致しない場合にのみ実行します。MTIf は MTUnless の逆で条件に一致する場合にのみ実行します。

MTUnless ブロックの中で MTIf の結果と同じ結果を得たい場合は MTElse ブロックタグと組み合わせることで、条件に一致する場合の実行内容も設定できます。

使い方

<MTUnless name="foo">
  <!-- do something -->
<MTElse>
  <!-- do something else -->
</MTUnless>

モディファイア

name="foo"

条件文の対象となる MTSetVar ファンクションタグに設定した name モディファイアの値を設定します。このモディファイアの値でどの値で条件分岐を行うかを決定します。このモディファイアは必須です。

さらに条件を細かく設定できます。何も指定しない場合は、MTSetVar ファンクションタグに value モディファイアが設定されていて、その値が 0 の場合にのみ実行します。

like="foo"

MTSetVar ファンクションタグに設定された value モディファイアの値、または MTSetVarBlock, MTSetVarTemplate ブロックタグの持つデータに foo が含まれない場合にのみ実行します。

<MTSetVar name="elephant" value="love">
<MTUnless name="elephant" like="lo">
<p>値が elephant の name モディファイアを持つ MTSetVar ファンクションタグの value モディファイアの値に lo が含まれるので、この段落は表示されません。</p>
</MTUnless>

また like モディファイアでは perl 正規表現を利用できます。例は MTSetVar ファンクションタグの value モディファイアの値、または MTSetVarBlock, MTSetVarTemplate ブロックタグの持つデータが barbaz で始まらない場合にのみ実行します。

<MTSetVar name="elephant" value="barcamp">
<MTUnless name="elephant" like="^(bar|baz)">
<p>値が elephant の name モディファイアを持つ MTSetVar ファンクションタグの value モディファイアの値に bar もしくは baz で始まるので、この段落は表示されません。</p>
</MTUnless>
eq="foo"

MTSetVar ファンクションタグに設定された value モディファイアの値、または MTSetVarBlock, MTSetVarTemplate ブロックタグの持つデータが foo と一しない場合にのみ実行します。

<MTSetVar name="elephant" value="love">
<MTUnless name="elephant" eq="love">
<p>値が elephant の name モディファイアを持つ MTSetVar ファンクションタグの value モディファイアの値が love と一致するので、この段落は表示されません。</p>
</MTUnless>
ne="foo"

MTSetVar ファンクションタグに設定された value モディファイアの値、または MTSetVarBlock, MTSetVarTemplate ブロックタグの持つデータが foo と一致する場合にのみ実行します。

<MTSetVar name="elephant" value="love">
<MTUnless name="elephant" ne="like">
<p>値が elephant の name モディファイアを持つ MTSetVar ファンクションタグの value モディファイアの値が like と一致しないので、この段落は表示されません。</p>
</MTUnless>
lt="foo"

MTSetVar ファンクションタグに設定された value モディファイアの値、または MTSetVarBlock, MTSetVarTemplate ブロックタグの持つデータが foo よりも大きい場合にのみ実行します。

<MTSetVar name="age" value="28">
<MTUnless name="age" lt="30">
<p>値が age の name モディファイアを持つ MTSetVar ファンクションタグの value モディファイアの値が 30 より小さいので、この段落は表示されません。</p>
</MTUnless>
gt="foo"

MTSetVar ファンクションタグに設定された value モディファイアの値、または MTSetVarBlock, MTSetVarTemplate ブロックタグの持つデータが foo よりも小さい場合にのみ実行します。

<MTSetVar name="age" value="28">
<MTUnless name="age" gt="26">
<p>値が age の name モディファイアを持つ MTSetVar ファンクションタグの value モディファイアの値が 26 より大きいので、この段落は表示されません。</p>
</MTUnless>
le="foo"

MTSetVar ファンクションタグに設定された value モディファイアの値、または MTSetVarBlock, MTSetVarTemplate ブロックタグの持つデータが foo 以上の場合にのみ実行します。

<MTSetVar name="age" value="28">
<MTUnless name="age" le="100">
<p>値が age の name モディファイアを持つ MTSetVar ファンクションタグの value モディファイアの値が 100 以下なので、この段落は表示されません。</p>
</MTUnless>
ge="foo"

MTSetVar ファンクションタグに設定された value モディファイアの値、または MTSetVarBlock, MTSetVarTemplate ブロックタグの持つデータが foo 以下の場合にのみ実行します。

<MTSetVar name="age" value="28">
<MTUnless name="age" ge="28">
<p>値が age の name モディファイアを持つ MTSetVar ファンクションタグの value モディファイアの値が 28 以上なので、この段落は表示されません。</p>
</MTUnless>
op
index

配列のインデックス (添え字) を指定して、配列の変数から値を取り出します。

<MTUnless name="foo" index="0" eq="hoge">

このMTタグは、以下のようにも書くことができます。

<MTUnless name="foo[0]" eq="hoge">

名前[添え字] という記述が index モディファイアの代わりです。

key

ハッシュのキーを指定して、ハッシュの変数から値を取り出します。

<MTUnless name="bar" key="a" eq="hoge">

このMTタグは、以下のようにも書くことができます。

<MTUnless name="bar{a}" eq="hoge">

名前{キー} という記述が key モディファイアの代わりです。

test

Perl の式を記述することができ、結果を利用して条件分岐を行います。