« カテゴリー一覧 | メイン | カテゴリのエントリー数の表示 »

モジュール化

Movable TypeにはMTIncludeタグとPHPのincludesという2通りのインクルードが利用可能です。
テンプレートをモジュール化して、インクルードする方式にすれば保守が容易になります。例えば、サイドバー部分をindex.htmlのテンプレートから分離して別ファイルにすれば別のテンプレートでも利用できるようになります。

MTIncludeはMTを利用している限り、自由に使えます。欠点と言えば、インクルードしたファイルを変更したら、テンプレートに反映させるために再構築が必要になることです。
また、MTIncludeはリソースを消費するので、ページ数が膨大になれば再構築の時間がかなることになります。
一方、PHPはダイナミックです。PHPの場合、インクルードしたファイルを変更すれば、すぐにサイトに反映されます。
ただし、PHPのincludesが動くためには、インクルードしているファイルがphpの拡張子を持つPHPである必要があるのが普通で、利用しているサーバがPHPをサポートしている必要があります。
#PHPのincludeについては別記事にする予定(^^;


例えば、サイドバーをモジュール化するとします。まず、インデックスのテンプレート(index.html)からサイドバーに対応する部分と切り出します。MT3.2ではカラムはalpha、betaの順で並ぶように設計されているため、デフォルトのlayout-two-column-rightのクラスでは、いかに囲まれた部分をdivタグがきちんと閉じるようにコピーします。


<div id="beta">
<div id="beta-inner" class="pkg">

その後、テンプレートのモジュールタグのクリックから「新規テンプレートの作成」を選びます。モジュールの名前にSidebarと入力し、モジュールの内容の箇所にコピーしておいたコードを貼り付けます。
これで作成したモジュールを保存します。

インデックスのテンプレート(index.html)に戻り、モジュールとして切り出した部分を削除して、替わりに


<$MTInclude module="Sidebar"$>

を入れます。再構築して期待通りに表示されてばOKです。

トラックバック

このエントリーのトラックバックURL:
http://www.yumemaro.com/apps/mt-tb.cgi/3

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)