xserver~自宅サーバー構築、Movable Typeのカスタマイズ、Linux、ブログなどについて解説していきます~

サイトロゴ
HOME > Movable Type > カスタマイズ > 第24回:カテゴリーご...
Movable Type
RSS Atom

Movable Type のカスタマイズ関連について扱っていきます。

第24回:カテゴリーごとにテンプレートを切り替える

第23回では、テンプレートをモジュール化する方法について説明しました。今回は、カテゴリーごとにテンプレートを切り替える方法について説明します。

今まで説明してきた全23回の中でも特に重要な回になります。なぜ重要なのか、おおよそ想像がつくかと思いますが、Movable Typeのデフォルトでは、カテゴリーごとにテンプレートを変更することができません…。

これがどういうことかというと、元となるテンプレートが3カラムデザインなら全てのページが3カラムとなり、2カラムデザインなら全てのページが2カラムとなってしまいます。しかしながら、実際問題、カテゴリー別にレイアウトを変更したり、特定のカテゴリーだけオリジナリティなデザインで構成したいケースは少なからずでてくるかと思います。

例えば、ニュースカテゴリーを3カラムに、通常の日記を2カラムにしたり、あるいは、特定のカテゴリーのみタイトル一覧で表示させたりなど、アイディアと工夫次第で個性溢れるユニークなデザインを作成する事ができます。せっかく、ホスティング系ブログとの個性差をだすためにMovable Typeを選択したのですから、その柔軟なカスタマイズ性を最大限に発揮させましょう♪


説明に入ります。カテゴリーごとにテンプレートを切り替えるには、おそらくいくつかの方法があると思いますが、ここではSupplemental Category Tags というプラグインを利用します。

まず、以下のサイトより、mtcatx-1_5.zip をダウンロードしてきてください。もしも、カテゴリーごとのテンプレートを正規表現を使って分岐する予定があるならば、mtregex-1_61.zip もついでにダウンロードしておきましょう。

mtcatx-1_5
mtregex-1_61

mtcatx-1_5.zip を解凍した中に、catx.pl と catx.pm が格納されていますので、それぞれ以下のディレクトリにコピーしておきましょう。bradchoateというディレクトリは存在しないので作成します。

⇒mtcatx-1_5.zip
(MTディレクトリ)/plugins/catx.pl
(MTディレクトリ)/extlib/bradchoate/catx.pm

⇒mtregex-1_61.zip
(MTディレクトリ)/plugins/regex.pl
(MTディレクトリ)/extlib/bradchoate/regex.pm
(MTディレクトリ)/extlib/bradchoate/postproc.pm


カテゴリーごとに異なるテンプレートを表示させるのに使用するタグは、MTIfCategory もしくは、MTIfNotCategory です。共に、name 属性pattern 属性を指定する事ができ、カテゴリーを固定して指定する場合は name属性、正規表現を使ってパターンで条件分岐する場合は pattern 属性を用います。

下の例では、news カテゴリーにHTTP要求があった場合は、「あいうえお」がブラウザに表示され、diary カテゴリーにHTTP要求があった場合には、「かきくけこ」が出力されます。

<MTIfCategory name="news">
あいおうえお
</MTIfCategory>


<MTIfCategory name="diary">
かきくけこ
</MTIfCategory>

上の例は、カテゴリー別に文章を部分的に変更したい場合に用いますが、これを応用する事で、カテゴリー別にテンプレートそのものを切り換える事ができます。

以下の例では、先ほどは、「あいうえお」「かきくけこ」と入れた場所に、MTIncludeタグ を使って特定のモジュールを読み込ませています。

<MTIfCategory name="news">
<$MTInclude module="3colum_template"$>
</MTIfCategory>


<MTIfCategory name="diary">
<$MTInclude module="2colum_template"$>
</MTIfCategory>

上記ソースを説明すると、news カテゴリーならば 3カラム用のテンプレート「3colum_template」モジュールを、diary カテゴリーならば「2colum_template」 モジュールを読み込ませるようにしています。

まず、「テンプレート」→「アーカイブ」→「カテゴリー・アーカイブ」に上記のソースを挿入します。その際、すでに記述されている「カテゴリー・アーカイブ」のソースは、必要な部分以外は全て削除してしまいます。そして、3カラム用と2カラム用のテンプレートモジュールを新規に作成し、「カテゴリー・アーカイブ」テンプレートからそのモジュールを読み込ませます。結果として、「カテゴリー・アーカイブ」のソースは、以下図のように極めてシンプルな形になります。

カテゴリー分岐


ここまでで、おおよそのイメージはつかめましたでしょうか?

この方法を応用する事で、個別エントリー・アーカイブも同様にして条件分岐させることができます。さらに、もっと発展させるならば、サイト内をヘッダー、3カラムメイン部分(左メニュー/メイン/右メニュー)、2カラムメイン部分(左メニュー/メイン)、フッターなどに細かく細分化し、全てのパーツをモジュール化した上で、最後にMTIfCategory で、カテゴリーに合わせたモジュールを割り当てていきます。このように、カテゴリーごとにパーツ(モジュール)を差し替える事で、カテゴリーによって左サイドメニューや右サイドメニューを変更したり、メイン部分をタイトル一覧表示させたりといった事が可能になるのです。

ちょっと凝ったサイトを作ろうと思ったら、条件分岐は必須となってくるので、是非、利用してみてください。使い方さえ慣れてしまえば、今まで以上に柔軟なレイアウトを実現させる事ができるでしょう。

以上、第24回は終了です。

参考になりましたらポチっとお願いします♪

トラックバック

このエントリーのトラックバックURL:


コメントを投稿

ブログをやるなら
ブログランキング

スポンサードリンク
私が読んだ書籍
ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック
カスタマイズ中心の書籍。すでにMTを触っている方にオススメ。どこからでも気軽に読めるのがGOODです。MT本の中でも特にお勧めの一冊。

Movable Type標準ハンドブック Movable Typeで今すぐできるウェブログ入門 改訂版
標準ハンドブックの名に相応しいMT入門本。インストールから基本設定、簡易なカスタマイズまで網羅。白黒ですが、デザインがすっきりしていて読み易いです。

Movable Typeでつくる!最強のブログサイト
入門編から基本設定、3カラムデザインへの変更、スタイルシートの説明、カスタマイズ応用編など広い範囲で網羅しています。370p とボリューム感も。

Movable Typeスタイル&コンテンツデザインガイド―コンテンツ管理システム(CMS)ツールとしてのMovable Type活用術&実践サイトデザイン術
MTをCMSツールとして活用するための仕組みや特徴を解説。前半のタグリファレンスは便利。後半のデザイン例は、オリジナルなデザインが作れる方なら不要です。初心者にはやや不向き。