Movable Typeプラグイン開発入門:第三回 管理画面サイドメニューの変更と追加方法
作成日:2025.03.06                                            
更新日:2025.03.07                                    
第三回の記事では、Movable Type管理画面のサイドメニューの変更・追加方法について解説します。既存メニューの名称変更から新規子メニュー・新規メニューの追加まで、具体的なYAML設定例をもとに詳しく紹介します。
Movable Type のプラグインの作り方の解説記事、第三回です。
過去の記事は、
今回は、Movable Type管理画面のサイドメニューを変更・追加する方法を解説します。
メニューの変更
管理画面のサイドメニューを変更するには、プラグインの config.yaml に以下のような設定を追加します。
applications:
    cms:
        menus:
            settings:
                label: コンフィグ
                icon: ic_tool
                order: 1700
上記の例では「設定」メニューの名前を「コンフィグ」に変更し、アイコンを「ツール」アイコンに、また表示順を変更しています。
- label
 - メニューの表示名。
 - icon
 - アイコンのファイル名。
mt/mt-static/images/icons/のディレクトリ内のアイコンファイル名を指定します(拡張子 .svg は省略する)。 - order
 - 表示順(昇順)。
既存のメニューの order 値は、mt/lib/MT/App/CMS.pmのsub core_menusを参考にしてください。 
既存メニューに新規子メニューを追加
既存のメニューに新規の子メニューを追加するには、以下のような設定を追加します。
applications:
    cms:
        menus:
            tools:sampleplugin:
                label: サンプルプラグイン
                order: 40
                mode: sampleplugin
                view:
                    - blog
                    - website
                condition: sub { return 1;}
上記の例では「ツール」メニューに「サンプルプラグイン」という名前の子メニューを追加しています。
- tools:sampleplugin
 - 既存メニューの ID に続けて子メニューの ID を指定します。
 - label
 - メニューの表示名。
 - order
 - 表示順(昇順)。
 - mode
 - メニューをクリックした際に表示する画面のモード名。
https://hostname/mt/mt.cgi?__mode=samplepluginという形でリンク先URLが指定されます。
実際に __mode=hogehoge で何らかの処理を追加する方法については、また今度書きます。 - view
 - メニューを表示する画面の種類を指定します。
この例ではブログとウェブサイトの管理画面で表示されるようにしています。
systemを指定すれば、「システム」の管理画面で表示されます。 - condition
 - メニューを表示する条件を指定します。1が返れば表示、0なら非表示。
この例では常に表示するようにしていますが、Perlのコードで表示条件を指定することもできます。 
新規メニューを追加
新規のメニューを追加するには、以下のような設定を追加します。
applications:
    cms:
        menus:
            sampleplugin:
                label: サンプルプラグイン
                icon: ic_tool
                order: 1550
                system_permission: administer
            sampleplugin:setting:
                label: プラグイン設定
                order: 10
                mode: sampleplugin_setting
                view: system
                condition: sub { return 1;}
上記の例では新規メニュー「サンプルプラグイン」を追加し、その子メニュー「プラグイン設定」を追加しています。
- label
 - メニューの表示名。
 - icon
 - アイコンのファイル名。
mt/mt-static/images/icons/のディレクトリ内のアイコンファイル名を指定します(拡張子 .svg は省略する)。 - order
 - 表示順(昇順)。
 - system_permission
 - システム管理画面での表示権限。
この例では管理者のみにメニューが表示されます。
システム管理画面ではなく、ブログ・ウェブサイトの管理画面での表示権限を指定する場合は、permissionを指定します。 - mode
 - メニューをクリックした際に表示する画面のモード名。
https://hostname/mt/mt.cgi?__mode=sampleplugin_settingという形でリンク先URLが指定されます。 - view
 - メニューを表示する画面の種類を指定します。
この例では「システム」の管理画面で表示されるようにしています。 - condition
 - メニューを表示する条件を指定します。1が返れば表示、0なら非表示。
この例では常に表示するようにしていますが、Perlのコードで表示条件を指定することもできます。 
なお、子メニューが一つ以上存在しないと、親メニュー自体も表示されませんので、段階を踏んで動作確認しながら実装を試してみる場合はご注意ください。
第四回 管理画面へのモード追加と設定表示の実装
2025.03.07追記
                        奈良市を拠点に、26年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。
これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。
【制作会社・企業様向けサポート】
Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。
ぜひ、プロフィールやWeb制作会社様向け業務案内、一般企業様向け業務案内もご覧くださいね。
Movable Typeプラグイン開発:独自オブジェクトの定義と操作ガイド
2025.09.26
Movable Typeのプラグイン開発において、独自オブジェクトの定義と操作方法を具体例とともに解説します。config.yamlでの設定記述から、Perlモジュールでのオブジェクト実装、そして基本的なロードや保存の操作まで、一連の手順を紹介。
Movable Type システムログ出力ガイド ― MT::App の log メソッドでエラーメッセージを記録する方法
2025.06.03
Movable Type のシステムログにエラーメッセージや各種情報を出力する方法について、MT::App の log メソッドを利用した具体的な実装例を解説します。ログレベル、クラス、カテゴリを指定することにより、出力内容を柔軟に分類・管理できる仕組みを詳述し、管理画面でのログ確認方法やデータベーステーブルでの確認方法も合わせて説明します。
Movable Type プラグインで実現するエラー画面・ログイン画面の出力方法
2025.04.10
Movable Typeプラグイン開発において、エラー画面やログイン画面をどのように出力すべきか、その基本手法を具体的なコード例を交えて解説します。MT::App の show_error および show_login メソッドの利用方法や各オプションの効果を理解することで、プラグインにおけるユーザーインターフェースのカスタマイズが容易になります。
Movable Type プラグインによるユーザーアクションメニュー制御 ― condition設定の実践的解法
2025.04.07
Movable Type プラグインを使用したユーザーアクションメニューの制御方法を解説します。特に、config.yamlでの condition 設定の制限とその回避策について、core_user_actions のオーバーライドによる実践的な解決方法を、具体的なコード例とともに紹介します。