op
モディファイアを利用して、テンプレートタグで四則計算が可能です。
これにより、さまざまな計算やプログラミングロジックをテンプレートタグだけで実現できます。
op
モディファイアは MTSetVar
, MTSetVarBlock
, MTGetVar
, MTVar
, MTIf
, MTUnless
, MTElse
, MTElseIf
で利用可能です。(MTSetVarTemplate
では、op モディファイアの利用はできません。)
設定値には、単純な計算を行う関数の名前を指定します。
演算関数
add
または+
: 加算sub
または-
: 減算mul
または*
: 乗算div
または/
: 除算mod
または%
: 剰余inc
または++
: インクリメントdec
または--
: デクリメント
op モディファイアの使用と動作
op モディファイアを使用する場合は、name モディファイアと value モディファイアをセットで設定します。
また、op モディファイアに inc(++) または dec(--) を指定した場合、value モディファイアは一緒に設定しても無視されます。
テンプレートタグ | モディファイアの記述例 | 動作 |
---|---|---|
MTSetVar | name="foo" value="3" op="+" | 変数 foo に対して、op モディファイアを value モディファイアとともに処理し、演算結果を変数 foo に格納します。 変数 foo が未定義の場合、op モディファイアは無視され、value モディファイアの値が変数に格納されます。 |
MTSetVarBlock | name="foo" op="+" | 変数 foo に対して、op モディファイアをタグで囲った値とともに処理し、演算結果を変数 foo に格納します。 変数 foo が未定義の場合、op モディファイアは無視され、タグで囲った値が変数に格納されます。 |
MTGetVar | name="foo" value="3" op="+" | 変数 foo に対して、op モディファイアを value モディファイアとともに処理します。 演算結果は変数 foo に格納されません。 変数の値を変えずに演算結果を出力する場合に使用します。 |
MTVar | name="foo" value="3" op="+" | MTGetVar と同じ動作をします。 ※ op を指定せず、name と value のみの場合は MTSetVar と同じ動作をします。 |
MTIf, MTElse, MTElseIf, MTUnless | name="foo" value="3" op="+" eq="7" | 変数 foo に対して、op モディファイアを value モディファイアとともに処理します。 演算結果は変数 foo に格納されません。 変数の値を変えずに演算結果で条件判別する場合に使用します。 |