Movable Typeで演算を行う

Movable Typeのテンプレート内で取得した数値に対して、加算や減算などを行う方法を調べたのでメモ。

サンプルコード

演算はopモディファイアを使って行いますが、使用できるテンプレートタグはMTSetVarやMTVar、MTIf、MTUnlessなどになります。
実際に設定を試してみます。

<mt:SetVars>totalEntry=<mt:Entries lastn="1"><mt:BlogEntryCount></mt:Entries></mt:SetVars>
初期値:<mt:Var name="totalEntry">

<mt:SetVars>add=<mt:Var name="totalEntry" value="5" op="add"></mt:SetVars>
加算:<mt:Var name="add">

<mt:SetVars>sub=<mt:Var name="totalEntry" value="5" op="sub"></mt:SetVars>
減算:<mt:Var name="sub">

<mt:SetVars>mul=<mt:Var name="totalEntry" value="5" op="mul"></mt:SetVars>
乗算:<mt:Var name="mul">

<mt:SetVars>div=<mt:Var name="totalEntry" value="5" op="div"></mt:SetVars>
除算:<mt:Var name="div">

<mt:SetVars>mod=<mt:Var name="totalEntry" value="5" op="mod"></mt:SetVars>
剰余:<mt:Var name="mod">

<mt:SetVars>inc=<mt:Var name="totalEntry" op="inc"></mt:SetVars>
インクリメント:<mt:Var name="inc">

<mt:SetVars>dec=<mt:Var name="totalEntry" op="dec"></mt:SetVars>
デクリメント:<mt:Var name="dec">

opに演算の内容、valueに演算で使用する数値を指定しますが、インクリメントやデクリメントの場合はvalueは無視されます。

上記の場合、再構築を行うと以下のように出力されました。

初期値:30
加算:35
減算:25
乗算:150
除算:6
剰余:0
インクリメント:31
デクリメント:29

opモディファイアでは記号を使って指定することもできます。

<mt:SetVars>totalEntry=<mt:Entries lastn="1"><mt:BlogEntryCount></mt:Entries></mt:SetVars>
初期値:<mt:Var name="totalEntry">

<mt:SetVars>add=<mt:Var name="totalEntry" value="10" op="+"></mt:SetVars>
加算:<mt:Var name="add">

<mt:SetVars>sub=<mt:Var name="totalEntry" value="10" op="-"></mt:SetVars>
減算:<mt:Var name="sub">

<mt:SetVars>mul=<mt:Var name="totalEntry" value="10" op="*"></mt:SetVars>
乗算:<mt:Var name="mul">

<mt:SetVars>div=<mt:Var name="totalEntry" value="10" op="/"></mt:SetVars>
除算:<mt:Var name="div">

<mt:SetVars>mod=<mt:Var name="totalEntry" value="10" op="%"></mt:SetVars>
剰余:<mt:Var name="mod">

<mt:SetVars>inc=<mt:Var name="totalEntry" op="++"></mt:SetVars>
インクリメント:<mt:Var name="inc">

<mt:SetVars>dec=<mt:Var name="totalEntry" op="--"></mt:SetVars>
デクリメント:<mt:Var name="dec">

結果は以下の通りです。

初期値:30
加算:40
減算:20
乗算:300
除算:3
剰余:0
インクリメント:31
デクリメント:29

変数ではなくif文でも使用することができます。
基本的な使い方は同じです。

<mt:SetVars>totalEntry=<mt:Entries lastn="1"><mt:BlogEntryCount></mt:Entries></mt:SetVars>
初期値:<mt:Var name="totalEntry">

<mt:If name="totalEntry" value="10" op="+" eq="40">
加算:一致
<mt:Else>
加算:不一致
</mt:If>

<mt:If name="totalEntry" value="5" op="*" gt="100">
乗算:100より大きい
<mt:Else>
乗算:100以下
</mt:If>

<mt:Unless name="totalEntry" value="5" op="/" gt="5">
剰余:5より小さい
<mt:Else>
剰余:5以上
</mt:Unless>

以下ように出力されました。

初期値:30
加算:一致
乗算:100より大きい
剰余:5以上

参考サイト

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2025年1月
 1234
567891011
12131415161718
19202122232425
262728293031