MT4.xプラグイン作成/プラグイン管理画面の作成 http://www.ark-web.jp/sandbox/wiki/1124.html
プラグインの管理画面を作成するには、プラグインのnewでconfig_template、system_config_template、blog_config_templateで管理画面のテンプレートファイルを指定し、settingsで設定値を定義します。
config_template、system_config_template、blog_config_templateの違い †
config_template、system_config_template、blog_config_templateはスコープの違いで使い分けます。
- config_template
- システムレベルスコープ、ブログレベルスコープ共通
- system_config_template
- システムレベルスコープ
- blog_config_template
- ブログレベルスコープ
settings †
管理画面で設定する設定値を定義する。keyとデフォルト値、スコープを定義できる。
settings => new MT::PluginSettings([
['option1', { Default => 'default_setting' }],
['option2', { Default => 'system_default', Scope => 'system' }],
:
[key, { Default => デフォルト値, Scope => スコープ(system or blog) }],
])
Scopeは'system'でシステムレベルスコープ、blogでブログレベルスコープになります。
setter, getter †
$plugin->set_config_value($key, $value[, $scope]);でkeyの値をセットできる。
$plugin->get_config_value($key[, $scope]);でkeyの値を取得できる。
$scopeではsystemかblogを指定できる。
サンプル †
plugin本体
my $plugin = new MT::Plugin::HelloToConfigPerson({
:
system_config_template => 'system_config.tmpl',
settings => new MT::PluginSettings([
[ 'target', { Default => 'Someone', Scope => 'system' }],
]),
});
sub init_registry {
my $plugin = shift;
$plugin->registry({
'tags' => {
function => {
HelloTo => \&_HelloTo,
},
},
});
}
sub _HelloTo {
my $ctx = shift;
my $args = shift;
my $cfg = MT::ConfigMgr->instance;
MT->set_language($cfg->DefaultLanguage);
return 'Hello, ' . $plugin->get_config_value('target');
}
テンプレート
<div>
<h3>誰に挨拶する?</h3>
<div>
<h4>挨拶する人の名前</h4>
</div>
<div class="plugin-tabs-content">
挨拶する人の名前を指定します。デフォルトではSomeoneになります。
<input type="text" name="target" value="<mt:var name="target">" class="rb" />
</div>
</div>
システムレベルスコープで定義しているので、[システムメニュー]->[プラグイン]の当該プラグインの管理画面から設定できるようになる。
サンプルダウンロード †
tag: Movable Type、MT、MTPlugin
![[PukiWiki] [PukiWiki]](image/sandbox.gif)



