エントリーにXMLでデータを埋め込むプラグイン(その1)

Movable Typeでは、エントリーに入れられる情報は、本文/追記/概要/キーワード/タグです。
これら以外に情報を入れたい場合は、何らかのプラグインが必要になります。

例えば、エントリーに日々の天気の情報を入れたいとしましょう。
エントリーの本文に直接に天気を書いても良いですが、それだと天気を表示する位置を変えようとしたときに、すべてのエントリーの本文を手直しする必要が出ます。
一方、天気の情報を独立して取り出せるようにしておけば(例えば、「MTEntryWeather」のようなタグで取り出せるようにする)、テンプレートを書き換えるだけで、すべてのエントリーで天気の表示方法を変えることができます。

このようなときに使うプラグインとしては、Kevin Shai氏作のRightFieldsプラグインが有名ですが、それとは違ったアプローチのプラグインとして、エントリーにXMLでデータを埋め込むプラグインを作ってみました。
今日は、そのインストール方法と、簡単な例を紹介します。

1.概要

このプラグインでは、エントリーの本文にXML形式でデータを埋め込み、それを取り出すという仕組みを取ります。

RightFieldsプラグインとは違って、立派なユーザーインターフェースはありません。
自分でXML形式でデータを書いて、エントリーの本文に入れる必要があります。

一方、エントリーの本文に直接にデータを入れるので、Movable Typeの書き出しの機能を使って、エントリーの本文とともにデータを簡単にバックアップすることができるというメリットがあります。

また、配列形式のデータを入れることもできるというメリットもあります。
例えば、写真主体のBlogを作っていて、エントリーごとに写真を数枚ずつ入れるような場合、それらの写真のファイル名などの情報を入れておくことができます。

2.インストール

このプラグインは、以下からダウンロードすることができます。

EntryXML_1_00.zip

ファイルを解凍すると、「EntryXML」というフォルダができます。
そのフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。

3.データの入れ方

このプラグインでは、エントリーの本文に、以下の形式でデータを入れることができます。
なお、この部分はエントリーの本文の最後に入れるようにします。

<!--
<XMLRecord>
XML形式のデータ
</XMLRecord>
-->

例えば、日々の天気をエントリーに入れるには、以下のようにすると良いでしょう。

<!--
<XMLRecord>
<Weather>天気(晴れ/雨など)</Weather>
</XMLRecord>
-->

↓入力中の様子
入力中の様子

4.データの取り出し方

エントリーに埋め込んだデータは、MTEntryXMLValueというタグで取り出すことができます。

例えば、上のようにして天気のデータをエントリーに埋め込んだとします。
その場合、以下のようにタグを組むことで、天気の情報を出力することができます。

<MTEntryIfXML><MTEntryXML><MTEntryXMLIfFields name="Weather"><p>天気:<MTEntryXMLValue name="Weather"></p></MTEntryXMLIfFields></MTEntryXML></MTEntryIfXML>

例えば、この部分をEntryBodyタグの前に入れれば、エントリーの本文の前に天気が表示されることになります。