Movable Type 4 βレビュー(その4・テンプレート関連)

Movable Type 4では、標準テンプレートの構造も変わっています。
また、テンプレート・タグもいろいろと追加されています。
今日はこれらについてレビューします。

1.標準テンプレートのモジュール化

Movable Typeには、従来より「テンプレート・モジュール」という機能がありました。
この機能を使えば、複数のテンプレートで共通する部分をテンプレート・モジュールにまとめることができました。

ただ、これまでのMovable Typeの標準テンプレートでは、テンプレート・モジュールはまったく活用されていませんでした。
たとえば、メインページのテンプレートとカテゴリー・アーカイブ・テンプレートや日付アーカイブ・テンプレートには、共通する部分が多いです。
しかし、それらの共通部分はモジュール化されておらず、それぞれのテンプレートに同じ記述がある状態でした。

一方、Movable Type 4では、標準テンプレートのモジュール化が進められています。
共通部分はテンプレート・モジュールになっていて、メインページ等のテンプレートはテンプレートモジュールを取り込むという仕組みになっています。

↓モジュール化されてシンプルになったメインページのテンプレート
モジュール化されてシンプルになったメインページのテンプレート

↓テンプレート・モジュールが活用されている
テンプレート・モジュールが活用されている

なお、従来どおり、テンプレート・モジュールを使わないでテンプレートを作ることもできます。

2.Widgetがテンプレート・モジュールから独立

Movable Type 3.3でWidget Managerプラグインが標準装備になりましたが、Wigdetのテンプレートはテンプレート・モジュールを流用する仕組みになっていました。
これも変更され、Widgetはそれ専用のテンプレートとして管理されるようになりました。

↓Widgetがテンプレート・モジュールから独立
Widgetがテンプレート・モジュールから独立

3.テンプレート・タグの書き方の変化

これまでのMovable Typeでは、テンプレートタグの大文字/小文字が区別されていました。
一方、Movable Type 4では、テンプレートタグの大文字/小文字の区別がなくなり、すべてを小文字で書くことができます。
また、「mt:entries」のように、XMLのネームスペース風にテンプレート・タグを書くこともできます。

さらに、テンプレート・タグのアトリビュートに変数(MTSetVar等で割り当てたもの)を使うことができるようになりました。
アトリビュートに変数を指定するには、「$変数名」のような書き方をします。
たとえば、以下のような書き方をすることができます。

<MTSetVar name="lastn" value="10">
<MTEntries lastn="$lastn">
・・・
</MTEntries>

従来であれば、このような処理にはMTTagInvokeプラグインを使っていましたが、それが不要になることになります。

4.変数の活用

前述したように、Movable Type 4ではテンプレート・タグのアトリビュートに変数を使うことができますが、それ以外にも変数関連の機能が強化されています。

まず、「MTIf」というタグが追加されています。
これらは、変数の値によって処理を分ける際に使います。

たとえば、変数some_varの値が1かどうかで処理を分ける場合だと、以下のように書くことができます。

<MTIf name="some_var" eq="1">
変数some_varの値が1のときの処理
<MTElse>
変数some_varの値が1でないときの処理
</MTIf>

条件判断の際には、等しい(eq)以外に、等しくない(ne)や大きい(gt)などの処理を行うこともできます。
なお、上の例にもあるように、<MTElse>タグに対する</MTElse>タグは不要になっています。

MTIfタグと同様のタグとして、「MTUnless」というタグも追加されています。
これは、MTIfタグと条件を逆に判断するものです。

5.その他のタグ

ここまでにあげたほかにも、ページ関係やフォルダ関係など、いくつかのタグが追加されています。