Skip to content

Japanese plugin dev 1 3

uehatsu edited this page May 10, 2011 · 12 revisions

環境変数について

はじめに

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

環境変数とは?

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

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

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

環境変数の追加

環境変数の追加はconfig.yaml内で以下のように行います。

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

環境変数は、default以外にも以下のような値を取ります。

  • path
    • pathはブーリアン値(0 or 1)を取ります。1が指定された場合、相対パスで指定された環境変数を自動的に絶対パスに読み替えます。
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_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;

まとめ

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

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

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

プラグイン開発ガイド インデックス

  1. プラグイン開発のためのファーストステップ
  2. レジストリ、YAMLについて
  3. 環境変数について
  4. プラグインのローカライゼーションについて
  5. テストドリブンでのプラグインの開発について
  6. グローバル・モディファイアプラグインの開発について
  7. ファンクションタグ プラグインの開発について
  8. ブロックタグ プラグインの開発について
  9. コンディショナルタグ プラグインの開発について
  10. プラグインのデバッグ
  11. プラグインの設定方法
  12. コールバックとフックポイント
  13. スケジュールタスクの開発
  14. MTオブジェクトの利用方法
  15. 独自オブジェクトの作成
  16. 新規アプリケーションの作成
  17. Transformerプラグインの開発
  18. 管理画面のメニュー修正
  19. リストアクションの追加
  20. 動作モードの追加とモーダルウィンドウの表示
  21. 外部Web APIとの連携
  22. 権限とロール
Clone this wiki locally