Movable Typeプラグイン開発入門:第五回 独立CGIスクリプトで設定表示機能を実装
作成日:2025.03.08                                            
更新日:2025.03.13                                    
第五回の記事では、前回までの連載内容を踏まえて、設定表示機能を別CGIスクリプトとして実装する方法を詳しく解説します。Perlモジュールの修正手順やCGIスクリプトの構成、動作確認のポイントを具体例とともに紹介します。
Movable Type のプラグインの作り方の解説記事、第五回です。
過去の記事は、
- Movable Typeプラグイン開発入門:第一回 基本的なプラグインの作成方法
 - Movable Typeプラグイン開発入門:第二回 設定画面の実装と動作確認
 - Movable Typeプラグイン開発入門:第三回 管理画面サイドメニューの変更と追加方法
 - Movable Typeプラグイン開発入門:第四回 管理画面へのモード追加と設定表示の実装
 
今回は、第四回で実装した設定表示の動作モードと同等の機能を、別CGIスクリプトで実装する方法を解説します。
CGIスクリプトの作成
まずは、Movable Typeのプラグインとは別のCGIスクリプトを作成します。ここでは、mt/plugins/SamplePlugin/show_setting.cgiという名前で作成します。
#!/usr/bin/perl -w
use strict;
use lib '../../lib';
use lib '../../extlib';
use MT::Bootstrap App => 'SamplePlugin::PluginSetting';
上記のスクリプトは、mt/plugins/SamplePlugin/lib/SamplePlugin/PluginSetting.pmを実行するCGIスクリプトです。
Perlモジュール PluginSetting.pm の作成
次に、前回作成したPuginSetting.pmを以下のように修正します。
package SamplePlugin::PluginSetting;
use strict;
use warnings;
use base qw( MT::App );
sub init_request {
    my $app = shift;
    $app->SUPER::init_request(@_);
    $app->add_methods(
        main => \&show_setting,
        show_setting => \&show_setting,
    );
    $app->{default_mode}   = 'main';
    $app->{requires_login} = 0;
}
sub show_setting {
    my $app = shift;
    my $plugin = MT->component('SamplePlugin');
    my %param;
    eval{
        # プラグイン設定を取得
        $param{api_key} = $plugin->get_config_value('sample_api_key', 'system');
        $param{api_enable} = $plugin->get_config_value('sample_api_enable', 'system');
    };
    if($@){
        print "Content-Type: text/html\n\n";
        print "プラグイン設定の取得に失敗しました。: $@";
        return;
    }
    $app->load_tmpl('sampleplugin_showsetting.tmpl', \%param);
}
1;
init_requestメソッドで、$app->{requires_login}に0を設定しています。これにより、MTへのログインを必要としないCGIスクリプトとして動作します。
※APIキーを表示するCGIなので、認証が不要であるのはセキュリティ的によろしくないですが、今回は解説のためにこのようにしています。
show_settingメソッドは、前回の記事で作成したものと同じです。
また、show_settingメソッドで表示するテンプレートファイルsampleplugin_showsetting.tmplも、前回の記事で作成したものと同じものを使用できます。
動作確認
ブラウザでhttp://hostname/mt/plugins/SamplePlugin/show_setting.cgiにアクセスして、プラグインの設定画面が表示されることを確誩してください。
第六回 ローカライゼーションの実装方法
2025.03.13追記
                        奈良市を拠点に、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 のオーバーライドによる実践的な解決方法を、具体的なコード例とともに紹介します。