Movable Type 4.0のテンプレート機能解説

2007.11.06 Author: たく

MT4がヴァージョンアップして多きく変わった機能の一つが、テンプレート機能です。
この機能を中途半端に理解して利用すると、痛い目に会います。
MT3のテンプレートの概念からはかなり変わってますので
そのへんを掴めるように、まとめてみました。

■MT3までは、テンプレートと生成するhtmlは対です。
(例)
「エントリー・アーカイブ・テンプレート」→「エントリーアーカイブ」生成
「カテゴリー・アーカイブ・テンプレート」→「カテゴリーアーカイブ」生成
「月別・アーカイブ・テンプレート」→「月別エントリーアーカイブ」生成

■MT4では単一テンプレートによって、複数のページの生成が可能です。
(例)
「ブログ記事リスト・テンプレート」→「カテゴリー・アーカイブ」生成
                      「月別・アーカイブ」生成
                      「ユーザ・アーカイブ」生成

仕組みはこうです。
下の図がデフォルトブログ記事リストテンプレート内の構造です。

template_small.gif

まずMT3でもあったMTIncludeタグによるモジュールにより
各テンプレートが構成されています。
さらに、そのモジュールの中でも
変数タグを用いた条件分岐により、
生成されるhtmlをコントロールしています。
下はh1タグ内の出力されるテキストを、カテゴリ、ユーザ(投稿者)、それ以外で
振り分けています。
これにより、単一のテンプレートから複数のページを生成することを可能にしています。

<h1 class="archive-title">
 <MTUnless name="datebased_archive">
  <MTIfArchiveType archive_type="Category">
   <em><$MTArchiveTitle$></em>の最近のブログ記事
  </MTIfArchiveType>
  <MTIfArchiveType archive_type="Author">
   <em><$MTArchiveTitle$></em>による最近のブログ記事
  </MTIfArchiveType>
  <MTElse>
  <$MTGetVar name="page_title"$>
 </MTUnless>
</h1>

逆にMTSetVarのような変数を定義するタグなどを使って
異なるテンプレートに配置された同一のモジュールの生成htmlを
コントロールすることも可能です。

このあたりは、若干複雑になってくるので、サイト構築の際に
利用するかしないかは、サイトの規模や質によって
慎重に判断したほうがよいでしょう。

名古屋のWebシステム開発・ネットワーク構築会社 コネクティボへ