Movable Type/第1回MTプラグイン勉強会 - MTプラグインの基本構造 http://www.ark-web.jp/sandbox/wiki/316.html
Movable Type/第1回MTプラグイン勉強会 - MTプラグインの基本構造
動画(Ustream) †
勉強会の模様をアップしました。たくさんのご参加ありがとうございます。
動画が潰れてて見れない状態になっててすみませんm(_ _)m
次回以降は改善した状態でお届けします。
Ustreamのチャンネルはこちら。
http://www.ustream.tv/channel/mt%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E5%8B%89%E5%BC%B7%E4%BC%9A
勉強会で解説したプログラムコードのダウンロード †
使い方(使う人はいないと思うけど) †
- 解凍してできたHelloWorldディレクトリをMT_DIR/plugins/にアップロードします
- テンプレートの好きな位置に<$MTHelloWorld$>を埋め込みます。
- 再構築すると、<$MTHelloWorld$>を埋め込んだ場所がHello MT's Worldという文字列に置き換わります。
ネタ †
日時 †
- 2008/05/23(金) 10:00〜
参加者 †
プラグインの種類 †
プラグインの基本構造(ディレクトリ、ファイル構造) †
MT_DIR/
|__ (plugins)/
| |__ MyPlugin/ <- プラグイン・スクリプト
| |__ *.pl <- プラグイン本体
| |__ *.cgi <- MT::Bootstarpを使ったCGIプログラム
| |__ lib/ <- 独自開発のクラスファイルを格納
| | |__ MT/
| | | |__ *.pm <- モデルクラス(MT::Objectのサブクラス)
| | |__ *.pm <- プラグイン本体やMT::Bootstrapを利用して呼び出されるアプリケーションの実体やユーティリティなど
| |__ tmpl/ <- View(テンプレートファイル)を格納
| | |__ *.tmpl
| |__ php/ <- ダイナミック・パブリッシング対応スクリプトを格納
| |__ lib/
| |__ classes/
|
|__ mt-static/ <- スタティック・ファイル(画像やJS、CSSなど)
|__ (plugins)/
|__ MyPlugin/
|__ *.css <- スタイル
|__ images/ <- 画像
|__ js/ <- JavaScript
|__ *.js
この構造を利用するメリット
- 慣習に従うメリット(他のプラグインも読みやすくなり、他の開発者にも理解されやすい)
- プラグイン・スクリプト、スタティック・ファイルともに [plugins/プラグイン名] というディレクトリ配下にまとめてファイルを置いておくことで、インストール、アンインストールが簡単になる。
- MT::ObjectのサブクラスをModel、テンプレートファイルをView、プラグイン本体やMT::Bootstrapを利用して呼び出されるアプリケーションの実体をControllerとみなすことで、MVC風(?)アーキテクチャでの開発が可能
- プラグイン・スクリプトとスタティック・ファイルを分けているので、デザイナとの協業が楽。また、スタティック・ファイルをMT_DIRから移動させることができる*1ので、MT_DIRにBasic認証をかけたりした場合でも、画像やスタイルなどはエンドユーザから認証なしでアクセス可能にできる。
その他のプラグイン作成のよい習慣はMovableType拡張プラグラミングに関する10の良い習慣。 (Junnama Online (Mirror))を一読されることをオススメ!
もっともシンプルなプラグイン例 †
シンプルなテンプレートタグ・プラグイン例としてHelloWorldを表示する、HelloWorldプラグインを解説する。
A-Formではどんなことをやってる? †
A-Form(http://www.ark-web.jp/movabletype/)では、MTプラグインの仕組みを利用して、以下のようなことをやっています。
- 独自モデルオブジェクト、テンプレートの利用
- ↑を利用したMVC風アーキテクチャによる実装
- 管理画面の画面追加、メニューの追加、権限設定
- 国際化(現バージョンでは不完全ですが^^;)
- グローバルフィルタを利用したエントリー内独自変数の再構築時置換
- 再構築処理呼び出し
- MT::Bootstrapを使ったフォームエンジンの実装
- MT::Bootstrapから組み込み先ブログのヘッダ、フッタ情報取得
- メール送信処理
- 動的入力チェック、アクセスレポート、死活監視(この辺りはMTプラグインの仕組みというより、応用ですが・・)
- セキュリティを意識した設計とテスト
- 文字コード変換、MT::Bootstrapでの国際化、タイムゾーン設定
- etc...
次回以降、週次でこれらの技術的Tipsやノウハウを紹介していきます。
次回予定 †
第1回では、基礎知識としてMTプラグインの概要を抑えてもらったと思うので、次回は「A-Formの基本構造」を解説します。「独自オブジェクトの定義方法、国際化の方法」に関してもふれるかもしれません。
tag: Movable Type、MT、MTPlugin、勉強会
![[PukiWiki] [PukiWiki]](image/sandbox.gif)



