技術資料

Movable Typeプラグイン開発入門:第五回 独立CGIスクリプトで設定表示機能を実装

作成日:2025.03.08
更新日:2025.03.13

第五回の記事では、前回までの連載内容を踏まえて、設定表示機能を別CGIスクリプトとして実装する方法を詳しく解説します。Perlモジュールの修正手順やCGIスクリプトの構成、動作確認のポイントを具体例とともに紹介します。

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追記

次の記事は、Movable Typeプラグイン開発入門:第六回 ローカライゼーションの実装方法です。

この記事を書いた人

※上が私です。

奈良市を拠点に、25年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。

これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。

【制作会社・企業様向けサポート】
  • 専任エンジニアのいない企業様に対するシステム面の不安を解消
  • 柔軟な契約形態や短納期での対応により、急なニーズにも迅速にサポート
  • システムの企画段階から運用まで、ワンストップでのサービスを提供

Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。

ぜひ、プロフィールWeb制作会社様向け業務案内一般企業様向け業務案内もご覧くださいね。

Movable Typeプラグイン開発入門:第六回 ローカライゼーションの実装方法

2025.03.13

第六回では、Movable Typeプラグインのローカライゼーションに焦点を当て、多言語対応の具体的な手法を紹介します。多言語対応の実装方法を学び、プラグインの利用者層を広げましょう。

Movable Type Perl

Movable Typeプラグイン開発入門:第四回 管理画面へのモード追加と設定表示の実装

2025.03.07

第四回目の連載記事では、Movable Typeの管理画面に新たな機能を追加する方法として、モード定義を使った設定画面の実装を紹介します。前回記事との連携と、Perlモジュールでの設定値取得手法について分かりやすく解説します。

Movable Type Perl

Movable Typeプラグイン開発入門:第三回 管理画面サイドメニューの変更と追加方法

2025.03.06

第三回の記事では、Movable Type管理画面のサイドメニューの変更・追加方法について解説します。既存メニューの名称変更から新規子メニュー・新規メニューの追加まで、具体的なYAML設定例をもとに詳しく紹介します。

Movable Type

Movable Typeプラグイン開発入門:第二回 設定画面の実装と動作確認

2025.03.05

Movable Typeプラグイン開発連載の第二回です。前回の記事に続き、config.yamlに設定画面用の情報を追加し、設定テンプレートファイルの作成と動作確認について詳しく解説します。

Movable Type

阿部辰也へのお仕事の依頼・お問い合わせ

軽いご相談もお気軽にどうぞ!

個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP