巷にブログは大人気。ここの MT (Movable Type、以下はMTと略) も世界的に実績のあるシステム。とくに機能拡張、プラグイン (Plugin) が容易に追加できることから、MT用のプラグインが色々と出回っている。そこで、今回は考え方や、簡単な作例を用いながら、プラグインの仕組み等を説明する。なお、対応バージョンは 3.0。前の古いバージョンでは修正しないといけないらしい。

<プラグインのインストール先>
 これからつくるプラグイン、あるいはダウンロードしたプラグインは、MTのメインディレクトリにある、plugins というサブディレクトリに入れる。プラグインのファイル名は拡張子が必ず .pl でないといけないので、注意すること。逆に、一時的にプラグインとして機能させたくない場合には、拡張子を他のものに変えるとよい。

<最初のプラグイン MTHelloWorld>
 C言語に習って、「Hello World.」を表示するプラグインを書こう。ファイル名は mt-hello.pl とする。

エディタを用いて、以下を入力し、ファイル mt-hello.pl として保存。

package MT::Plugin::HelloWorld;
use MT::Template::Context;
MT::Template::Context->add_tag(HelloWorld =>sub { return 'Hello World.'; });

つぎに、MTのテンプレートファイル、例えばメインページの適当な箇所に、以下を挿入する。

<$MTHelloWorld$>

メインページを再構築すれば、Webページにメッセージ Hello World が表示される。

では、作成したプラグインの各行を見ていく。
1行目。パッケージ MT::Plugin::HelloWorld の宣言。
2行目。MT::Template::Context を使用するとの宣言。3行目にこれを実際に使う。
3行目。タグ HelloWorld の登録。タグの実態は キーとバリューからなる連想配列。キーはタグ名そのものでないといけない。バリューはサブルーチンで、テンプレートの構築処理時に呼び出される。

注意して欲しいのは、テンプレートに使う際、登録したタグ名に MT というプレフィックス (prefix) がつく。つまり、登録したタグ HelloWorld ⇔ テンプレートでの使用 MTHelloWorld となる。なお、MT専用の変数タグは、HTML固有のタグと区別するために、<$MTタグ$> の形で使う。

<MT専用タグについて>
 MTでは専用タグが2種類あり、コンテナタグと変数タグ。
コンテナタグは主に、ループやコンディションを表し、<MTEntries>…</MTEntries> のように前後囲んで使う。
変数タグは、<$MTEntryBody$> の形で使う。

Comments are closed.

Post Navigation