PerlModuleプラグイン用のPerlモジュールをMTで編集する

先日PerlModuleプラグインを公開しました。
このプラグインを使うと、Movable Typeのテンプレートから、Perlのモジュールにあるサブルーチンを呼び出すことができることができます。

ただ、モジュールを作る間は、モジュールを頻繁に書き換えることになります。
モジュールのファイルを書き換えるたびにサーバーにアップロードするのは、面倒なことです。
そこで、Movable Typeの管理画面上でモジュールのファイルを編集する方法を紹介します。

1.モジュールをインデックステンプレートで出力する

インデックステンプレートを使うと、1つのテンプレートから1つのファイルを出力することができます。
また、インデックステンプレートの作成の際に、「出力ファイル名」の欄に絶対パスを書くと、そのパスにファイルを出力することができます。

この仕組みを利用すれば、CGIから書き込み可能なディレクトリであれば、インデックステンプレートを使ってどこにでもファイルを出力することができます。
そこで、インデックステンプレートにPerlのモジュールの内容を書き、Perlのライブラリとして認識できるディレクトリにファイルを出力するようにします。

例えば、Movable Typeのインストール先ディレクトリが、「/var/data/mt」だとします。
この場合、「/var/data/mt/plugins/PerlModule/lib/PerlModule」ディレクトリにファイルを出力するようにすれば、以下のタグでそのモジュール内のサブルーチンを実行することができます。

<$mt:PerlModule module="PerlModule::ファイル名" sub="サブルーチン名"$>

2.インデックステンプレートの削除

テンプレートを配布する場合、モジュール用のインデックステンプレートがそのまま残っていると、そのテンプレートを不用意に触られる恐れがあります。
そこで、モジュールを作り終わったら、インデックステンプレートとして管理するのをやめるようにします。
手順は以下の通りです。

  • 1.FTP等で、モジュールのファイル名を一時的に変えます。
  • 2.モジュール用のインデックステンプレートを削除します。
  • 3.1.で変更したファイル名を元に戻します。