管理画面のメニューに追加する

| | コメント(1) | トラックバック(1)

カテゴリ:

管理画面のヘッダー部分の
「新規作成」「一覧」「デザイン」「設定」「ツール」
という部分にプラグインで項目を追加する方法。

もちろん、コールバックでテンプレートファイルを捕まえて、
そこをDOMなり正規表現なりで変更してやればできることはできるけれども、
もっとスマートなやり方がある。
プラグインのregistryの時に登録すればいいんである。

この記事では「新規作成」「一覧」「デザイン」「設定」「ツール」というのを大項目と呼び、
新規作成の中の「ブログ記事」「ウェブページ」「アップロード」などの
大項目にマウスオーバーすると現れる項目を小項目と呼ぶ。

registryに以下のような感じで書くだけで大項目・小項目ともに追加可能。


my $plugin = MT::Plugin::testPlugin->new({
    id => 'testPlugin',
    registry => {
        applications => {
            cms => {
		menus => {
			'test' => {
				label => 'testtest',
				order => 111,
			},
			'test:aho' => {
				label => 'aho',
				order => 111,
			},
			'create:aho' => {
				label => 'aho',
				order => 111,
			},
		},
            },
        },
    },
});

このコードを足すと管理画面はこうなる。

testtese.png

こうすると、大項目の中に「testtest」という項目が追加され、
「testtest」の中に「aho」という小項目が追加される。


'test' => {
		label => 'testtest',
		order => 111,
		},

↑この部分が大項目を追加する部分で、labelで実際に表示する項目名を設定する。


'test:aho' => {
		label => 'aho',
		order => 111,
		},

↑この部分が小項目を追加する部分で、「大項目:小項目」と書く事で
どの大項目に追加するかを指定する。
この場合、testという大項目にahoという小項目を加えている。

ここでは詳しくは書かないけれど、registryでmethodやmodeを設定すれば、
独自モードを独自画面で実行でき、メニューをクリックすることで
その画面へ遷移するインターフェースを作成できる。

もし新たな大項目を作成するのではなく、すでにある大項目の中に
小項目を追加したい場合は以下のようにする。

「新規作成」に項目を追加したければ「create:」
「一覧」に項目を追加したければ「manage:」
「デザイン」に項目を追加したければ「design:」
「設定」に項目を追加したければ「prefs:」
「ツール」に項目を追加したければ「tools:」
と付ければよい。

ちなみに実験してみたところ、小項目のない大項目はつくれなかった。
すなわち、testとtest:ahoの片方だけ書くだけでは、だめだった。

小項目のひとつもない大項目は表示されず、
大項目が登録されていない小項目も表示する事ができなかった。

* * *

以下のページを参考にさせていただいた。
Movable Type/第9回MTプラグイン勉強会 - registryのリファレンスを精読する(2) - アークウェブシステム開発SandBox
Movable Type管理画面の「壊れにくい」カスタマイズのために。 (Junnama Online (Mirror))

comments powered by Disqus

トラックバック(1)

このブログ記事を参照しているブログ一覧: 管理画面のメニューに追加する

このブログ記事に対するトラックバックURL: http://nozawashinichi.sakura.ne.jp/MT-4.25/mt-tb.cgi/506

前の記事、 管理画面のメニューに追加する - Using MT に関連して、メニ... 続きを読む

comments powered by Disqus

このブログ記事について

このページは、Shinichi Nozawaが2009年6月23日 18:03に書いたブログ記事です。

ひとつ前のブログ記事は「$Core::MT::CMS...がわからない」です。

次のブログ記事は「メニューを追加するときのパラメータ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。