MTIfで変数と変数を比較する方法がやっと分かった。

ここ何週間かMT漬けでした。仕事でMTが導入することが決まり、あれよあれよという間に
私の手元に。ちょうどいい機会だからがっつり勉強すっかー、という訳でMT漬けってましたよ。


で。


MTが何なのか、という説明は置いといて。(超ざっくり書くと「ソース生成マシン」。ブログ記事を入力して
ポチっとすると、決められたテンプレートに沿ってソースを生成する。それだけ。)
MTにはMTIfタグっていう条件分岐を指定するタグがあるんですが、これについてメモメモ。

MTIfについて

<$MTSetVar name="hoge" value="baka"$>

<MTIf name="hoge" eq="baka">
ここ変数hogeの値がbakaと一致した場合の処理を書く
</MTIf>


要はMTSetVarで宣言した変数と、指定の値と一致している(していない、とかいう指定もできますが)
かどうかを調べる。変数と任意の値を比較して条件分岐させる場合は、これで
問題ないと思うんすよね。ただ、変数同士を比較する場合が分からなかった。
まず、変数の取得は

<$MTGetVar name="hoge"$>


で取ってこれるんですが、MTIfの中でMTタグは使えないので

<MTIf name="hoge" eq="<$MTGetVar name="hoge"$>">
ここ変数hogeの値がbakaと一致した場合の処理を書く
</MTIf>


とすると、正しく処理されない。
こういう場合は

<MTIf name="aho" eq="$hoge">
ここ変数hogeの値がbakaと一致した場合の処理を書く
</MTIf>


とすると変数がとれる。
これってperl知ってたら速攻で解決してたのかもね。
結構ハマってしまいました。
蛇足ですが、変数にMTタグで取得した値を入れるのは

<MTSetVarBlock name="page_title">
  <$MTEntryTitle$>
</MTSetVarBlock>


とかってすると、変数page_titleにエントリのタイトルが入ります。


SixApartのMTのリファレンスはすごい充実してますね。
HTML/CSSやってる人は、CMSツールのテンプレ作成を求められることがこれからは増えて
くるんじゃないかと思うんで、一度見てみるとよいかもですよ。


今日のまったりBGM♪
ガリガリ君電気グルーヴ