MovableTypeのコールバックをフックする

 MovableTypeにはプラグインを追加して機能を拡張する仕組みが備わっています。プラグインでは独自のMovableTypeタグを追加したり、グローバル・フィルターという共通のタグ属性を追加したりできます。この方法はMovableTypeのこちらのマニュアルに紹介されています。またこの他に、MovableTypeが提供する様々なコールバックをフックして、独自の処理を組み込むことができます。実はこのフック処理、マニュアル片手に教科書どおりのプログラムを用意すれば、意外と簡単にプラグインを作成できました。

 これ⇒ サンプルのプラグインです。(HookUpload.pl

 このプラグインのソースコードを紐解くにはマニュアルが必要ですが、ここにPerl APIのマニュアルがあります。ここでの一番のポイントはMT->add_callback関数の第一引数でしょう。コールバック・ハンドラの登録のために、コールバック・メソッドの名前を指定するということなんですが、どんな名前を与えるのか?
 その答えはリファレンス・マニュアルの中にありました。マニュアルを良く見てみると、「コールバック」と書かれた章があります。この第一引数には、この章にあるコールバック・メソッド名を与えれば良いようです。例えばMT::WeblogPublisherの「BuildFile」を与えると、ファイルが構築された直後に呼び出されるコールバックをフックできます。サンプルでは「CMSUploadImage」を与えていますが、これはMT::App::CMSの画像のアップロード毎に呼び出されるコールバックということになります。

 このコールバックのフックの仕方さえ分れば、ここから色んな拡張が考えられますね。