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)

第14回は第12回に引き続きMT::App::CMSクラスのリファレンスを読むです。

MT::App::CMS

[edit]

動画(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

[edit]

UTILITY FUNCTIONS

[edit]

listify(\@array)

listify(['a','b','c'])

とすると

[{name => 'a'},{name => 'b'},{name => 'c'}]

というデータ構造を返す(配列参照をnameをkeyにしたハッシュの配列参照に変換する)。

単純なリスト表示をテンプレートエンジンに処理させるためのデータ構造変換に利用するなど。

[edit]

$app->make_feed_link($view, $params)

ログイン中ユーザのActivity Feedへのリンクを構築する。
Activity Feedは一般的にはユーザのログから抽出される活動記録になる。
$viewはsystem、またはblogを指定してシステムレベルかブログレベルかを指定する。

[edit]

$app->map_comment_to_commenter(\@comments)

MT4.2でMT::CMS::Commentに移動。

[edit]

$app->ping_continuation

MT4.2でMT::CMS::Entryに移動。

[edit]

$app->rebuild_these(\%rebuild_set, %options)

指定されたエントリーのセットを再構築するユーティリティメソッド。
第6回再構築をプラグインから呼び出すを参照。

[edit]

$app->register_type($type, $package)

MT::Compatに配置されている。使用は推奨されない。

[edit]

RegistrationAffectsArchives($blog_id, $archive_type)

MT4.2でMT::CMS::Blogに移動。

[edit]

$app->update_entry_status($new_status, @id_list)

MT4.2でMT::CMS::Entryに移動。

[edit]

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

[edit]

CALLBACKS

コールバックがいくつか提供される。

使い方。

MT->add_callback('コールバック名', 優先度, $plugin, コールバックハンドラ);
例)
MT->add_callback('CMSPostSave.entry', 9, $plugin, \&_change_path);
[edit]

rebuild_options

$app->add_rebuild_option(\%param)で追加したカスタムリビルドオプションに対して作用する。

コールバックハンドラは

callback($cb, $app, \@options)

のインタフェースになる。
\@optionsは各カスタムリビルドオプションのハッシュリファレンス(add_rebuild_optionの\%param)の配列。

[edit]

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を参照してください)。

とのこと。遅延プロミスの意味がわからない^^;

[edit]

CMSDeletePermissionFilter.<type>

[edit]

CMSSavePermissionFilter.<type>

[edit]

CMSSaveFilter.<type>

[edit]

CMSPostSave.<type>

[edit]

CMSPostDelete.<type>

[edit]

CMSUploadFile.<type>

[edit]

CMSUploadImage.<type>

[edit]

Rebuild.<type>

[edit]

次回予定

MT::Pluginクラスのリファレンスを読もうと思います。

投稿者進地 | パーマリンク

| append.gif

tag: Movable TypeMTMTPlugin勉強会


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-09-04 (木) 09:29:42 (5715d)

アークウェブのサービスやソリューションはこちら