Home > Logs > June 2008 > This Entry
プラグイン設定画面のためのテンプレートでもコールバック MT::App::CMS::template_source.*** が呼び出される
つい最近気づきましたが、プラグインの中で system_config_template や、blog_config_template で指定しているテンプレートファイルが呼び出される際にも template_source コールバックが走っています。
たとえば、以下のようにプラグインの初期化処理を書いた場合、
my $plugin = MT::Plugin::BlogSelectorSample->new({
id => 'BlogSelectorSample',
key => 'blogselectorsample',
name => 'BlogSelectorSample',
*-- 略 --*
system_config_template => 'blogselectorsample.tmpl',
settings => new MT::PluginSettings([
['selected_blog_id', { Default => '' }],
]),
});
init_registry で指定するコールバックを、以下のようにすると、blogselectorsample.tmpl が構築される際に、_cb_template_source_blogselectorsample サブルーチン(メソッド)がコールバックとして呼び出されます。
sub init_registry {
my $plugin = shift;
$plugin->registry({
callbacks => {
'MT::App::CMS::template_source.blogselectorsample',
=> \&_cb_template_source_blogselectorsample,
},
});
}
なので、この _cb_template_source_blogselectorsample ルーチンでごにょごにょしてやると…
プラグイン設定でブログを選択する
プラグイン設定で、ブログを選択するプラグインが作成出来たりするわけです。これでもう、プラグイン設定でブログを指定する際に、ブログ ID を直接記入する必要はなくなります。些細なことですが、より直感的なインターフェイスを目指す方に。
サンプルプラグインのダウンロード
ブログを選択する機能しかありませんが、よろしければどうぞ。
BlogSelectorSample プラグイン(約 2.2 kb)
インストール
通常のプラグインと同様に、解凍してできた BlogSelectorSample フォルダを plugins ディレクトリ内にそのままアップロードしてください。正しくアップロードできていれば、システム・メニューのプラグイン設定に BlogSelectorSample プラグインが表示されます。
動作環境
Movable Type ver. 4 以降、ver. 4.2 の rc2 でも動作確認しています。
Post Comment