Movable Type 4.0のテンプレート機能解説
2007.11.06 Author: たく
MT4がヴァージョンアップして多きく変わった機能の一つが、テンプレート機能です。
この機能を中途半端に理解して利用すると、痛い目に会います。
MT3のテンプレートの概念からはかなり変わってますので
そのへんを掴めるように、まとめてみました。
■MT3までは、テンプレートと生成するhtmlは対です。
(例)
「エントリー・アーカイブ・テンプレート」→「エントリーアーカイブ」生成
「カテゴリー・アーカイブ・テンプレート」→「カテゴリーアーカイブ」生成
「月別・アーカイブ・テンプレート」→「月別エントリーアーカイブ」生成
■MT4では単一テンプレートによって、複数のページの生成が可能です。
(例)
「ブログ記事リスト・テンプレート」→「カテゴリー・アーカイブ」生成
「月別・アーカイブ」生成
「ユーザ・アーカイブ」生成
仕組みはこうです。
下の図がデフォルトブログ記事リストテンプレート内の構造です。
まず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を
コントロールすることも可能です。
このあたりは、若干複雑になってくるので、サイト構築の際に
利用するかしないかは、サイトの規模や質によって
慎重に判断したほうがよいでしょう。