Hatena::ブログ(Diary)

生涯一マークアップエンジニアだっ!!

2008-07-05

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♪

ガリガリ君/電気グルーヴ

hiroshihiroshi 2009/06/05 00:05 僕もこれで悩んでいたのですごく助かりました。
ちなみに、ご存知かもしれませんが、
<MTSetVarBlock name="page_title">
  <$MTEntryTitle$>
</MTSetVarBlock>

<$MTEntryTitle setvar="page_title"$>
でオーケーです。ここに出てました。
http://www.movabletype.jp/blog/modifier_setver.html

gocchi3gocchi3 2012/04/21 17:37 このサイトのおかげで問題がひとつ解決しました。
ありがとうございます。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/wonohe/20080705/1215234439