Movable Type 4 βレビュー(その5・複数Blogの管理)

Movable Typeでは複数のBlogを管理することができますが、Movable Type 4ではこの機能も強化されました。
今日はこの機能をレビューします。

1.include_blogs(blog_ids)/exclude_blogsアトリビュート

これまでのMovable Typeでは、MTEntriesタグ等で各種の情報を出力する場合、個々のBlogの情報のみが出力されました。
複数のBlogの情報をまとめて出力するには、MultiBlogプラグインなどを使っていました。

一方、Movable Type 4では、MTEntriesタグなどのBlogの情報を出力するコンテナタグで、「include_blogs」(「blog_ids」でも同じ動作)か、「exclude_blogs」というアトリビュートを使うことができるようになりました。

include_blogsアトリビュートでは、「include_blogs="x,y,・・・"」のように、BlogのIDを指定して、それらのBlogの情報をまとめることができます。
また、「include_blogs="all"」とすれば、すべてのBlogの情報をまとめることができます。

たとえば、以下のようにすると、IDが1番と2番のBlogをまとめて、最近のエントリー10件のタイトルと、それぞれの属するBlog名を出力することができます。

<ul>
<MTEntries include_blogs="1,2" lastn="10">
<li><MTEntryTitle>(<MTBlogName>)</li>
</MTEntries>
</ul>

一方、「exclude_blogs="x,y,・・・"」のようにすれば、IDを指定してBlogを除外することができます。

MT4のソースをざっと見た限りでは、以下のテンプレート・タグでinclude_blogs等のアトリビュートを指定できるようです。

種類テンプレート・タグ
コンテナMTBlogs
MTEntries
MTCategories
MTComments
MTPings
MTAssets
MTTags
変数MTBlogEntryCount
MTBlogCategoryCount
MTBlogCommentCount
MTBlogPingCount
MTTagSearchLink
MTTagRank

2.再構築のタイミングの問題

複数のBlogをまとめて情報を出力する場合、まとめた中のどれか1つのBlogで情報が更新されれば、include_blogs等のアトリビュートを使っているテンプレートを再構築して、情報を更新する必要があります。
たとえば、1番と2番のBlogのエントリーをまとめて出力する場合、1番/2番のどちらかのBlogでエントリーを更新したときに、テンプレートを再構築する必要があります。

ただ、現状のβを見る限りでは、上記のような再構築を自動で行う機能はないようです。
テンプレートは、従来どおり、個々のBlogに属する形になっています。
そのため、再構築のタイミングも従来どおりです。

複数Blogをまとめて情報を出力し、かつ再構築を自動化する場合、以下のような方法が考えられます。

  • 1.include_blogs等のアトリビュートを含む部分を、ファイルにしてサーバーにアップロードする。
  • 2.各Blogにインデックス・テンプレートを作り、「このテンプレートにリンクするファイル」の欄に、上のファイルの名前を指定する。
  • 3.2.で作ったテンプレートで、「インデックス・テンプレートを再構築するときに、このテンプレートを自動的に再構築する」のチェックをオンにしておく。
  • 4.PHPのincludeか、もしくはAjaxを使って、上の手順で再構築されたファイルを、表示先の箇所に組み込む。

ちなみに、MultiBlogプラグインだと、「1番のBlogにエントリーが追加されたら、2番のBlogのインデックス・テンプレートを再構築する」というような設定を行うことができます。
このような設定を簡単に行えるような機能を追加して欲しいところです。