op モディファイアを利用して、テンプレートタグで四則計算が可能です(ver.2.58以降)。
これにより、さまざまな計算やプログラミングロジックをテンプレートタグだけで実現できます。
「mtvar」「mt:setvar」「mt:setvarblock」「mt:if」「mt:unless」「mt:elseif」タグが「op」モディファイアをサポートしています。「mt:setvartemplate」「mt:getvar」「mt:else」「mt:ifgetvar」は「op」モディファイアをサポートしていません。
add
または +
: 加算sub
または -
: 減算mul
または *
: 乗算div
または /
: 除算mod
または %
: 剰余inc
または ++
: インクリメントdec
または --
: デクリメントop モディファイアを使用する場合は、name モディファイアと value モディファイアをセットで設定します。
また、op モディファイアに inc(++) または dec(--) を指定した場合、value モディファイアは一緒に設定しても無視されます。
テンプレートタグ | モディファイアの記述例 | 動作 |
---|---|---|
mt:var, mt:setvar | name="foo" value="3" op="+" | 変数 foo に対して、op モディファイアを value モディファイアとともに処理し、演算結果を変数 foo に格納します。 変数 foo が未定義の場合、op モディファイアは無視され、value モディファイアの値が変数に格納されます。 |
mt:setvarblock | name="foo" op="+" | 変数 foo に対して、op モディファイアをブロックタグの評価結果とともに処理し、演算結果を変数 foo に格納します。 変数 foo が未定義の場合、op モディファイアは無視され、ブロックタグの評価結果がそのまま変数に格納されます。 |
mt:if, mt:elseif, mt:unless | name="foo" value="3" op="+" eq="7" | 変数 foo に対して、op モディファイアを value モディファイアとともに処理します。 演算結果は変数 foo に格納されません。 変数の値を変えずに演算結果で条件判別する場合に使用します。 |