Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Manualマニュアル

第3回】Config Directiveについて

最終更新日: 2017.10.06

このページは既にhttps://github.com/movabletype/Documentation/wiki/Japanese-plugin-dev-1-3に移行されています。

はじめに

シックス・アパートの上野初仁(はつひと)です。

今回は、mt-config.cgiなどで設定する設定項目(Config Directive)について解説し、プラグインで追加する方法についても解説します。

Config Directiveとは?

誤解を恐れず一言で表すと「mt-config.cgiで設定できる項目」になります。

もう少し言葉を足すと、Movable Typeの設定で「環境変数」と呼ばれ、mt-config.cgiで設定を行います。

プラグインで利用する場合、未設定のConfig Directiveを呼び出すとエラーになってしまいます。そこで、Config Directiveの追加が必要になります。

Config Directiveの追加

Config Directiveの追加はconfig.yaml内で以下のように行います。

config_settings:
    MyImageURL:
        default: http://www.example.com/images/foo.jpg

Config Directiveは、default以外にも以下のような値を取ります。

  • path

    pathはブーリアン値(0 or 1)を取ります。1が指定された場合、相対パスで指定されたConfig Directiveを自動的に絶対パスに読み替えます。

    config_settings:
        MyLogPath:
            default: /var/log/mt/errors.log
            path: 1
    

  • handler

    handlerは静的(static)なdefaultでは問題がある場合や、明示的に動的なdefault値を設定できるようにするためのものです。

    config_settings:
        MyLogPath:
            handler: $Example::Example::Plugin::MyLogPath
            path: 1
    

  • alias

    aliasを利用すると既にあるConfig Directiveのエイリアスとして指定できます。

    config_settings:
        MyErrorLogPath:
            alias: MyLogPath
    

配列、ハッシュの場合、データの取得方法は以下のようになります。

use MT;
my $mt = new MT;
my $scalar = $mt->config->ScalarConfig;
my @array = $mt->config->ArrayConfig;
my $hash = $mt->config->HashConfig;

まとめ

今回はConfig Directiveについてご紹介しました。後々プラグインを作成するようになるとプラグインの設定をmt-config.cgiで行いたい場合が出てきます。これらは、管理画面のプラグインの設定とは毛色の違う設定になります。管理画面でプラグインの設定をする場合は、テンプレートなどを用意する必要があるため、mt-config.cgiで設定できる方が楽といった面もあります。

ただし、Config Directiveで指定するのは基本設定を変更しない静的(static)なものを対象にするのが望ましいため、プラグインの挙動を動的に変えるためにConfig Directiveを利用するのは、お勧めできません。

今回のConfig Directiveもそうですが、Movable Typeには色々な場面で設定が変更できます。例えばStyleCatcherなどのプラグインやテーマによって拡張できるものもあります。要所要所でベストな設定方法を取っておくとMovable Type本体のバージョンアップや、プラグインのバージョンアップ時に恩恵を受けられることも少なくありません。お作法を勉強してクールなプラグインを書いていきましょう!!

プラグイン開発ステップ・バイ・ステップ インデックス

目次