AnotherCustomFieldsプラグインをダイナミック対応にする(その1)

拙作のAnotherCustomFieldsプラグインを、ダイナミックパブリッシングおよびDynamicMTMLに対応させて欲しいという要望をいただいています。
そこで、対応に至るまでの流れとして、以下の事柄を紹介していきます。

  • ダイナミックパブリッシング(およびDynamicMTML)の起動時に、プラグインごとの初期化処理を行う
  • PHPでconfig.yamlの内容を読む
  • 動的にテンプレートタグを追加する

今日は、ダイナミックパブリッシングの起動時に、プラグインごとの初期化処理を行う方法を解説します。

1.PHPファイルの設置

AnotherCustomFieldsプラグインをダイナミックパブリッシング等に対応させるには、ダイナミックパブリッシング等の起動時に、動的にテンプレートタグを追加します。
そこで、ダイナミックパブリッシング等の起動時に、処理を入れることが必要になります。

ダイナミックパブリッシング等の起動時に、プラグインごとの初期化処理を行うには、以下の図のように、プラグインごとのディレクトリ→「php」ディレクトリの中に、「init.○○○.php」のようなファイル名のPHPを設置し、その中に処理を書きます(○○○は任意)。

MTのディレクトリ
└ pluginsディレクトリ
  └ プラグインごとのディレクトリ
    ├ libディレクトリ(Perlのコードを入れるディレクトリ)
    ├ phpディレクトリ
    │ └ init.○○○.phpファイル
    └ config.yamlファイル

AnotherCustomFieldsプラグインでは、「init.AnotherCustomFields.php」というファイルを設置することにします。

2.DynamicMTMLオブジェクトの取得

AnotherCustomFieldsプラグインのダイナミック対応の中で、DynamicMTMLの機能を利用します。
そこで、init.AnotherCustomFields.phpの中で、DynamicMTMLのオブジェクトを取得します。

DynamicMTMLの本体は、「DynamicMTML」というクラスのオブジェクトになっています。
また、DynamicMTMLオブジェクトは、「$app」という名前のグローバル変数になっています。
したがって、init.AnotherCustomFields.phpでDynamicMTMLオブジェクトを参照するには、「global $app;」の文を入れます。