エントリにデータを埋め込む(3)
もう一つ、エントリにデータを埋め込むプラグインとして、藤本壱さんが作った「EntryField」というプラグインがあります。
僕が作っているマンガデータベースサイト「コミックホームズ」(http://comich.net)で使わせていただいています。
「EntryField」プラグインのダウンロード先はこちら。
http://www.1-fuji.com/mtbook/download2.php
プラグインの使い方の詳細は、藤本さんの著書「MovableType上級カスタマイズ術」
http://www.amazon.co.jp/exec/obidos/ASIN/477412379X/ref=ase_hajimefujimos-22/503-9783606-8195161
に出ていますが、ここでは簡単に「コミックホームズ」での利用法を書いてみます。
「コミックホームズ」は、エントリ=1作品、カテゴリ=作家、雑誌、コミックス名と割り当てて作品データベースを作っています。
エントリでは、
タイトル=作品タイトル/サブタイトル・回
本文=掲載ページ情報(開始ページ、ページ数、カラーページ数)
追記=作品のコメント
と割り当てています。
この、本文に掲載ページ情報を埋め込むところで「EntryField」プラグインを使います。
例えば「雑誌の10ページ目から掲載、全部で52ページ、うちカラーが2ページ」というページ情報を記録するのに、
<!--
<page_start>010</page_start>
<page_number>052</page_number>
<page_color>C2</page_color>
-->
とすればいいです。
最初と最後を<!--と-->で囲んでいるのは、ページで本文を表示した時にコメントアウトされて画面に表示されないようにするためです。
フィールドの値を囲んでいるタグ <page_start> などは半角英数字で自由に定義できます。
テンプレート内では、
<MTEntryField field="page_start">
などとして、これらの値を出力します。
以上が基本的な使い方ですが、「コミックホームズ」ではこの記録方法をちょっとアレンジしています。
例えば、花とゆめ2001年1号に掲載された作品の場合、本文欄に
<!--
<hanayume200101>010,052,C2</hanayume200101>
-->
と入力しています。
フィールドを囲んでいるタグ <hanayume200101> と </hanayume200101> は雑誌カテゴリ名で定義しています。
なぜこうしているかというと、作品によっては複数の雑誌に掲載されることがあり、それぞれの雑誌のカテゴリアーカイブで、それぞれのページ情報を表示したいからです。
例えば上記の作品が、別冊花とゆめ2004年5月号に再掲載された場合は、本文欄にその情報を追加して、
<!--
<hanayume200101>010,052,C2</hanayume200101>
<betsuhana200405>120,052,BW</betsuhana200405>
-->
とします。
雑誌のカテゴリアーカイブでは、この値を参照してページ情報を出力します。
カテゴリアーカイブのテンプレートで
<MTEntryField field="<MTCategoryLabel>">
と書いてそのカテゴリ(雑誌)に対応した値を出力したい所なんですが、アトリビュートにMTタグは使えないので、「MTTagInvoke」プラグイン
http://www.nonplus.net/software/mt/MTTagInvoke.htm
を使って、以下のように書いています。
<MTTagInvoke tag_name="MTEntryField">
<MTTagInvokeAttribute name="field"><MTCategoryLabel></MTTagInvokeAttribute>
</MTTagInvoke>
これで、その雑誌カテゴリに対応した掲載ページ情報を取り出せます。
ここでは作品の掲載ページ情報を登録しましたが、「カテゴリに応じた何かのデータをエントリに埋め込む」方法として、いろいろ活用できると思います。