ダイナミック・パブリッシング&DynamicMTML用のプラグイン(ファンクションタグ)のひな形(その1)

Movable Typeのダイナミック・パブリッシングでは、PHPのテンプレートエンジンである「Smarty」を使って、テンプレートタグを処理します。
したがって、ダイナミック・パブリッシング用にテンプレートタグを追加するプラグインを作る場合、Smartyの書き方に沿ったPHPのコードを組みます。

また、DynamicMTMLはダイナミック・パブリッシングの応用です。
したがって、ダイナミック・パブリッシング用にプラグインを作れば、DynamicMTMLでも動作します。

そこで、ダイナミック・パブリッシング&DynamicMTML用に、ファンクションタグを追加するプラグインのひな形を紹介します。
今日はその前半です。

1.ファイル構成

ダイナミック・パブリッシング&DynamicMTML用のプラグインは、以下のようなファイル構成になります。

└ plugins
  └ プラグイン名のディレクトリ
    │ config.yamlファイル
    ├ libディレクトリ
    │ └ スタティック・パブリッシング用のプラグインのコード
    └ phpディレクトリ
      └ ダイナミック・パブリッシング&DynamicMTML用のプラグインのコード

config.yamlファイルには、プラグインの名前や、追加するテンプレートタグの情報を入れます。
libディレクトリには、スタティック・パブリッシング用に、Perlのプラグインのコードを入れます。
そして、phpディレクトリに、ダイナミック・パブリッシング&DynamicMTML用のPHPのプラグインのコードを入れます。

2.config.yamlファイルの内容

最低限のconfig.yamlファイルの内容は、以下のようになります。

name: プラグインの名前
id: プラグインのID
author_name: プラグインの作者名
description: プラグインの概要
version: バージョン番号
tags:
  function:
    テンプレートタグ名: $プラグインのID::モジュール名::サブルーチン名

各行の内容は以下の通りです。

プラグインの名前Movable Typeのプラグイン一覧に表示するプラグイン名を指定します。
プラグインのIDプラグインのIDを半角英数字で決めて指定します。
プラグインの作者名自分の名前を入れます。
プラグインの概要プラグインの大まかな内容を入れます。
バージョン番号プラグインのバージョン番号を入れます。
テンプレートタグ名ファンクションタグの名前を自分で決めて、先頭の「MT」を除いた部分を指定します。
モジュール名とサブルーチン名Perl用のプラグインのコードがあるモジュール名とサブルーチン名を指定します。

3.config.yamlファイルの事例

例えば、以下のようなプラグインを作りたいとします。

  • 「MTHelloMTWorld」というファンクションタグを追加します。
  • プラグイン名を「Hello MT World」にします。
  • プラグインのIDを「HelloMTWorld」にします。
  • Perl用のプラグインのコードを、「HelloMTWorld::Plugin」というモジュールに入れます。
  • テンプレートタグの処理を行うサブルーチンに、「hello_mt_world」という名前を付けます。

この場合、config.yamlファイルの内容は以下のようになります。

name: Hello MT World
id: HelloMTWorld
author_name: Hajime Fujimoto
author_link: http://www.h-fj.com/blog/
description: Adds MTHelloMTWorld tag.
version: 1.00
tags:
  function:
    HelloMTWorld: $HelloMTWorld::HelloMTWorld::Plugin::hello_mt_world