MTIfタグが使い辛くてあまり自らすすんで使ってこなかったのですが以外に便利なのでその基本を紹介。
PHPやPerl、Shell、JavaScriptなどのIFとはちょっと違うのは、何故かタグがネストされていることです。例えばPHPでは、
使用できるアトリビュートは以下のとおり。
また、ブログに貼り付けられたアイテム(画像)をサムネイルで表示するという場合には、
いろいろな書き方がありますが、私もあまり使わないのでメモ程度ですみません。
PHPやPerl、Shell、JavaScriptなどのIFとはちょっと違うのは、何故かタグがネストされていることです。例えばPHPでは、
if ($key == "yes") {というもので、こういう形式にプログラマーはかなり慣れちゃってます。もうこれが普通の条件分岐だという頭になってます。しかしMTIfタグは、こんな風にネストされていました。ここがわからなかった。
<処理1>;
} elseif {
<処理2>;
} else {
<処理3>;
}
<mt:If>どうしてこんな風になっているのかというといわゆるブロックタグといわれている<mt:Entries></mt:Entries>のようなネストされた状態で構築してゆくという構造がそのまま反映されているのだと思います。MTタグに極端に少ないのは、玄人プログラマーが好むショートカットというものでかなり綿密に文字でタグを書いてゆかないといけないというかつてのシェルスクリプトを思い出させます。@_とか||とか、&&とか使わないわけです。タグの文字を読むと何となく意味がわかりますが、||に関しては意味わからんですよ。
<処理1>;<mt:ElseIf>
<処理2>;
</mt:ElseIf><mt:Else></mt:If>
<処理3>;
</mt:Else>
MTIfタグのアトリビュート
いわゆる条件分岐で必要な要素はずべて揃ったと言えます。変数に対して理論積、理論和にはじまり、加減乗除の演算子も使えてこれはもうプログラムだな...と思わせるものがあります。もうSmartyなどとはかけ離れたテンプレートの様式になっております。使用できるアトリビュートは以下のとおり。
- name
- eq
- ne
- gt
- lt
- ge
- le
- like
- tag
- op (add(+), sub(-), mul(*), div(/), mod(%), ++, --)
- index
- key
- test
<mt:SetVarBlock name="pagename"> <!--変数名を忘れずに指定-->みたいな感じでしょうか?
<$mt:IndexBasename$> <!--値をセット-->
</mt:SetVarBlock>
<mt:If name="pagename" eq="index">
インデックスページ(index.html)です。
</mt:If>
また、ブログに貼り付けられたアイテム(画像)をサムネイルで表示するという場合には、
<mt:SetVar name="top_cnt" value="0">というような書き方になります。ブログに投稿された画像を10個取り出してサムネイルを作っています。画像をクリックするとその記事に行く。
<mt:Entries lastn="100">
<mt:EntryAssets lastn="1" type="image OR video">
<mt:If tag="AssetThumbnailURL">
<mt:SetVar name="top_cnt" op="++">
<mt:If name="top_cnt" le="10">
<a href="<$mt:EntryPermalink$>"">
<img src="<$mt:AssetThumbnailURL$>" width="180" />
</a>
</mt:If>
</mt:If>
</mt:EntryAssets>
</mt:Entries>
いろいろな書き方がありますが、私もあまり使わないのでメモ程度ですみません。


