MovableTypeのプラグインを書いてみた
必要に迫られて、今までぼんやりとしか把握していなかったMovableTypeを触りはじめました。
Flickrの写真をサイトの中に埋め込みたかったんですが、せっかくなのでスクラッチでプラグインを書いてみようということで、「Flickr photos List」というプラグインを作ってみました。
※MTOS 5.02を使ってます。
MovableType(MT)のプラグインの練習
MovableTypeのプラグインは、MTタグを自作するもんだというあやふやな理解でいて、過去に買った以下の書籍を参考にコードを書いてみました。(最新バージョンじゃないのでご注意)
Movable Type プロフェッショナル・スタイル MT4.1対応 (Style for professional)
- 作者: CSS Nite,上ノ郷谷太一,蒲生トシヒロ,荒木勇次郎,藤本壱,関根元和,黒野明子,柳泰久,野田純生,丹羽章
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 66回
- この商品を含むブログ (18件) を見る
cheebowさんこと、関根さんの「プラグイン開発と応用」の章でまさに、プラグインの開発方法が載っていたので、ここを見ながらサンプル通りの簡単なMTテンプレートを作りました。
本番
今回作るFlickrの写真をサイトに埋め込むプラグインに似たようなのを、Plugin Directoryを使って探してみると、FlickrPhotosというプラグインがあり、詳細を見てみると、Requirementsという項目に、Flickr::APIが必要とあります。
サードパーティのモジュールってどうやって使うの?
サードパーティのモジュールをMTで使う方法がわからなかったので調べてみると、mt/extlibというディレクトリにサードパーティのCPANモジュールをインストールすれば使えるということがわかりました。
よくよく見ると、mt/extlibの中には、よく使うCPANモジュールがたくさんあって、今回作りたいプラグインは、元々入っているLWP::SimpleとXML::Simpleで十分と判断しました。
実際作ってみて
書籍やWebを見ると作り方がいろいろあって混乱してきました。
書籍では、テンプレートタグの定義をinit_registryというサブルーチンで定義しているし、元々入っているMultiBlogやTypePadAntiSpamでは、MT::Pluginコンストラクタのregistryというプロパティで定義しているし、SixApartの技術情報提供ブログでは、MT::Template::Contextのaddtagメソッドで定義してるし。
これが俗に言うTMTOWTDIってやつかorz...
最終的に、MovableType.orgのチュートリアルにある、YAMLで設定を記述する方法に行き着きました。
Movabletype.orgのドキュメント
Movabletype.orgには、Movabletype.jpでは見つからなかったDeveloper's Guideがあり、非常に丁寧なチュートリアルがあります。
このチュートリアルは、Makefiile.PLを作ったり、PODを書いたりなど、Plugin Directoryへの登録まで指南してくれます。新参者はここのドキュメント見るのが良いのかなと思ったりしました。
作ったプラグイン
管理画面のテンプレートの作り方は書籍を参考に、後はDeveloper's Guideを参考にして、簡単なFlickrのプラグインができました。
まとめ
自分を含めて、今からプラグイン開発に取り組もうとする始める新参者*1にとって、どこを見れば作れるのかが提示されていないような気がするので、Movable.jpにもデベロッパー向けのガイドが欲しいなと思いました。
TMTOWTDIはいいんですけど、すべての作り方を網羅的に載せて、開発者がどの実装方法を使うか選べるようなドキュメントも欲しいなと思います。
個人的には、Movabletype.orgのドキュメントが一番詳しくてわかりやすかったです。
mt/extlibの中には、Perlでよく使うモジュールがいくつもあるので、モジュールの追加インストールをしない状態でも、いろいろ遊べそうな気配があります。ディレクトリの中を覗いてみて、「おぉ、いいじゃん。」となりました。
なにはともあれ、Perlの勉強にもなりそうだし、MTのプラグインの開発は楽しいかもと思った次第であります。