MTプラグインで、管理画面のメニューに項目を追加するには、レジストリを使います。
そこでは、「view」オプションを使って「どの画面」にメニューを追加するかを指定できます。
my $plugin = new MT::Plugin::Hoge({
name => 'Hoge',
registry => {
applications => {
cms => {
menus => {
'tools:hoge' => {
label => "Hoge",
order => 800,
view => "blog",
},
},
},
},
},
});
MT->add_plugin($plugin);
こんな感じで、指定するとブログメニューにだけメニューが追加できます。
と、今まではこんな感じで、blogを指定すればブログメニューに、systemを指定すればシステムメニューに、view自体を指定しなければ両方に追加されたのですが、MT5からはビューが増えたこともあり、配列を渡すことで複数のviewを追加できるようになりました。
my $plugin = new MT::Plugin::Hoge({
name => 'Hoge',
registry => {
applications => {
cms => {
menus => {
'tools:hoge' => {
label => "Hoge",
order => 800,
view => [ "blog", "website", "system"],
},
},
},
},
},
});
MT->add_plugin($plugin);
こんな感じにすると、ブログ、システム、ウェブサイトのメニューに新しくメニューを追加することができるようになります。
ここでは、以下の指定ができます。
- user
- ユーザーダッシュボード
- blog
- ブログメニュー
- system
- システムメニュー
- website
- ウェブサイトメニュー
この中でも、「user」が非常に面白くて、これを指定すると、本来メニューが存在しないユーザーダッシュボードに追加したメニューがひとつだけぽつんと表示されます。
まさに、「俺メニュー」という感じです。
とても、面白いので、ぜひ試してみてください。