Movable Type/第14回MTプラグイン勉強会 - MT-App-CMSのリファレンスを精読する(2) http://www.ark-web.jp/sandbox/wiki/1760.html
Movable Type/第14回MTプラグイン勉強会 - MT-App-CMSのリファレンスを精読する(2)
- 動画(Ustream)
- UTILITY FUNCTIONS
- listify(\@array)
- $app->make_feed_link($view, $params)
- $app->map_comment_to_commenter(\@comments)
- $app->ping_continuation
- $app->rebuild_these(\%rebuild_set, %options)
- $app->register_type($type, $package)
- RegistrationAffectsArchives($blog_id, $archive_type)
- $app->update_entry_status($new_status, @id_list)
- CUSTOM REBUILD OPTIONS
- CALLBACKS
- 次回予定
第14回は第12回に引き続きMT::App::CMSクラスのリファレンスを読むです。
動画(Ustream) †
勉強会の模様をアップしました。
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
UTILITY FUNCTIONS †
listify(\@array) †
listify(['a','b','c'])
とすると
[{name => 'a'},{name => 'b'},{name => 'c'}]
というデータ構造を返す(配列参照をnameをkeyにしたハッシュの配列参照に変換する)。
単純なリスト表示をテンプレートエンジンに処理させるためのデータ構造変換に利用するなど。
$app->make_feed_link($view, $params) †
ログイン中ユーザのActivity Feedへのリンクを構築する。
Activity Feedは一般的にはユーザのログから抽出される活動記録になる。
$viewはsystem、またはblogを指定してシステムレベルかブログレベルかを指定する。
$app->map_comment_to_commenter(\@comments) †
MT4.2でMT::CMS::Commentに移動。
$app->ping_continuation †
MT4.2でMT::CMS::Entryに移動。
$app->rebuild_these(\%rebuild_set, %options) †
指定されたエントリーのセットを再構築するユーティリティメソッド。
第6回の再構築をプラグインから呼び出すを参照。
$app->register_type($type, $package) †
MT::Compatに配置されている。使用は推奨されない。
RegistrationAffectsArchives($blog_id, $archive_type) †
MT4.2でMT::CMS::Blogに移動。
$app->update_entry_status($new_status, @id_list) †
MT4.2でMT::CMS::Entryに移動。
CUSTOM REBUILD OPTIONS †
add_rebuild_optionメソッドを利用して再構築ダイアログにオリジナルの再構築オプションをプラグインから追加することができる。
(本体はMT::Compatに定義されている)
$app->add_rebuild_option(\%param)
paramに指定できるkeyは以下の通り。
- label
- 再構築ダイアログに表示するこのオプションのラベル
- code
- このオプションが選択実行された場合に実行する関数へのリファレンス
- key
- このオプションのID。ユニークであること。指定されない場合はlabelの値が使われる。
再構築オプションをさらにカスタマイズするためのrebuild_optionsというコールバックを使うことができる。
参照:Movable Type オブジェクト・リファレンス - MT::App::CMS
CALLBACKS †
コールバックがいくつか提供される。
使い方。
MT->add_callback('コールバック名', 優先度, $plugin, コールバックハンドラ); 例) MT->add_callback('CMSPostSave.entry', 9, $plugin, \&_change_path);
rebuild_options †
$app->add_rebuild_option(\%param)で追加したカスタムリビルドオプションに対して作用する。
コールバックハンドラは
callback($cb, $app, \@options)
のインタフェースになる。
\@optionsは各カスタムリビルドオプションのハッシュリファレンス(add_rebuild_optionの\%param)の配列。
CMSViewPermissionFilter.<type> †
ハンドラで<type>オブジェクトを参照する権限があるときはtrue、ない場合はfalseを返すことで、オブジェクトの参照権限の調整を行うことができる。
ハンドラは
callback($eh, $app, $id, $obj_promise)
の形になる。
$idはそのオブジェクトが既存ならそのid、新規の場合はundefになる。
$obj_promiseは
http://www.sixapart.jp/movabletype/manual/object_reference/archives/mt_app_cms.html
によると、
$obj_promiseはオブジェクト自身の遅延プロミスです。必要があれば、$obje_promise->forceでオブジェクトを取得することができますが、通常はその必要はありません(MT::Promiseを参照してください)。
とのこと。遅延プロミスの意味がわからない^^;
CMSDeletePermissionFilter.<type> †
CMSSavePermissionFilter.<type> †
CMSSaveFilter.<type> †
CMSPostSave.<type> †
CMSPostDelete.<type> †
CMSUploadFile.<type> †
CMSUploadImage.<type> †
Rebuild.<type> †
次回予定 †
MT::Pluginクラスのリファレンスを読もうと思います。
tag: Movable Type、MT、MTPlugin、勉強会