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ツールのテンプレ作成を求められることがこれからは増えて
くるんじゃないかと思うんで、一度見てみるとよいかもですよ。