PowerCMS™
[ブログ] PowerCMS 6 でのアップデートまとめ を追加しました。
[新着情報] PHP 8.2 に対応した PowerCMS 6.5 の提供を開始 を追加しました。
[新着情報] PowerCMSクラウド の月額費用を、2024年7月1日より価格改定します を追加しました。
[新着情報] アルファサードのゴールデンウィーク休業について を追加しました。

MTIf

MTIf

条件文の対象となる MTSetVar ファンクションタグに設定した変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数を利用して条件文を作成します。MTIf ブロックタグは条件を満たした場合にのみ実行します。MTUnless は MTIf の逆で条件を満たさない場合にのみ実行します。

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

使い方

<$MTSetVar name="love" value="polar bear"$>

<MTIf name="love" eq="elephant">
    <p>私はゾウを愛しています</p>
<MTElseIf eq="polar bear">
    <p>私はゾウより、シロクマを愛しています</p>
<MTElse>
    <p>私はゾウもシロクマも愛していないのです</p>
</MTIf>

<MTIf name="love">
    name (もしくは tag) のみを指定した場合、値があるかないかを判断できます。
</MTIf>

モディファイア

name="foo"

条件文の対象となる MTSetVar ファンクションタグに設定した name モディファイアの値を設定します。このモディファイアで指定された変数の値で条件分岐を行います。このモディファイアか tag のどちらかが必須です。

tag="tagName"

指定したMTタグの出力値をもとに条件分岐を行います。このモディファイアか name のどちらかが必須です。

tag を指定した場合、MTIf タグに指定したモディファイアが tag に指定した MT タグに対して適用されます。例えば下記の format は MTDate に対して機能します。 (頭の MT は省略できます)

<MTIf tag="Date" format="%Y">

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

like="foo"

MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数に foo が含まれる場合にのみ実行します。

<MTSetVar name="elephant" value="love">
<MTIf name="elephant" like="ov">
    <p>変数 elephant の値に ov が含まれるので、この段落は表示されます。</p>
</MTIf>

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

<MTSetVar name="elephant" value="barcamp">
<MTIf name="elephant" like="^(bar|baz)">
    <p>変数 elephant の値が bar もしくは baz で始まるので、この段落は表示されます。</p>
</MTIf>
eq="foo"

MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数が foo と一致する場合にのみ実行します。

<MTSetVar name="elephant" value="love">
<MTIf name="elephant" eq="love">
    <p>変数 elephant の値が love と一致するので、この段落は表示されます。</p>
</MTIf>
ne="foo"

MTSetVar ファンクションタグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数が foo と一致しない場合にのみ実行します。

<MTSetVar name="elephant" value="love">
<MTIf name="elephant" ne="like">
    <p>変数 elephant の値が 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>
op="演算子"

演算子を指定することで値に対して四則計算が可能です。詳細はテンプレートタグで利用できる演算関数を参照してください。

index

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

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

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

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

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

key

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

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

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

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

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

test

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