
前回の更新からしばらく(というよりかなり)たってしまいましたが少しやる気が出てきたので更新再開します。
MovableType4をレンタルサーバー(チカッパ!)にインストールしてはみたもののこれまでのMT3との違いの大きさに(これまた)かなりやられ→そのまま放置していたというのが正直なところです。
しかし、「これではイカーン!」ということで鬼門のテンプレートから徐々に覗いていこうと思います。(フー)
軽量化されたメインページのテンプレート
まず、驚いたのがメインページになるテンプレートの中身。MT3のときにはヘッダーからフッターまでしっかりと記述されていたのが、MT4ではそれらをモジュールとしてMTIncludeタグで読み込んでいます。さらには先頭には見慣れないMTSetVarというタグが・・・。そういえばMT3のマニュアルにも載っていたなと思い出しはしたものの使い方がわからなかったのでまったく使った記憶がありません。使わなくても不便を感じませんでしたしね。
しかし、MT4では使わない手はないというくらい重要な役を担っているタグのようですし、これをある程度使えるようになれば、かなり自由なWebサイトを構築することができそうです。
というわけでまずは新鮮なタグとテンプレートの構造を順にみていくことにします。
新しい技「変数のセットと呼び出し」
テンプレートをみるとまずMTSetVarというタグがずら~っと並んでいます。MT4ではこのタグがいたるところで使われています。ドキュメントで調べてみるとこのタグはnameに指定した変数にvalueの値をセットするタグのようです。使い方はこんな感じ。
<MTSetVar name="変数名" value="値">
変数をセットしたら変数を呼び出す必要があるわけで、再びドキュメント参照。定義した変数から値を呼び出すにはMTGetVar、MTVarタグを利用するとあります。MTVarはMTGetVarと同じ働きをするということなので今回は無視。
<$MTGetVar name="変数名"$>
で、どこかで使われているだろうMTGetVarタグを探すことにします。メインページのテンプレートの1行目に
<MTSetVar name="body_class" value="mt-main-index">
とあり、「body_class」という変数に「mt-main-index」という値がセットされています。この値がどこでつかわれるのか知りたいので「body_class」でテンプレート内を検索してみます。

10個のテンプレートがヒットしました。とりあえず「ヘッダー」テンプレートを選択。この中に
<MTGetVar name="body_class">
という記述があるはずです。「ヘッダー」テンプレート内をみてみると・・・body要素のところに発見しました。
<body class="<MTIf name="body_class"><$MTGetVar name="body_class"$> </MTIf>~略~>
生成されているメインページのHTMLで該当部分が
<body class="mt-main-index"~略~>
となっていることが確認できました。変数「body_class」はその名のとおりbody要素のclass名をあらわしていましたね。当たり前っちゃー当たりまえです。
ところで、無視したらいけないのが「MTIf」タグ。MT4からの新機能でいろいろな条件分岐ができるみたいですが、詳しく見るのは今回パス。簡単に説明すると
「条件を満たした場合にのみ実行されるタグ」
ということらしいっす。この例では「body_class」が存在したらという感じの意味になります。いろいろ使えそうなので研究の余地ありありです。
とりあえずこのあたりでまとめてみると
- メインページテンプレートにて変数「body_class」に値「mt-main-index」をセット(MTSetVarタグ)
- MTIncludeで「ヘッダー」テンプレートを読み込む
- body_classが変数にセットされているかどうか(MTifタグ)
- 変数がセットされていたら、値を呼び出す(MTGetVarタグ)
という感じになります。
この変数セット→条件分岐→変数呼び出しという流れはMT4においてとっても重要なポイントになりそうなのでぜひマスターしたいところですね。
もちろんこれまでのようなテンプレートの作り方もできるみたいなので、そうなると弱い自分の楽したいって声が聞こえてきそうですが・・・。いやいやがんばれ俺!
次回はMTIfタグあたりをみていきたいと思っています。








mixiニューデザイン
なんだかんだで、ボロクソ言われてますね。。ぶっちゃけ、おいらは今の方が好きなんだけど、マイノリティーな意見ですね。いつまでたってもβで2.0っぽさが出てて…