DynamicMTML では、PHP プログラムでコールバックプラグインを作成することができます。
サンプル
- $MT_HOME/addons/DynamicMTML.pack/sample/callbacks
内に、いくつかのサンプルファイルがあります。ファイル内のプログラムはすべてコメントアウトされています。このうち、「dynamicmtml_pack_post_init.php」を使って、実際にかんたんな実装を行ってみましょう。
ファイル名と設置場所のルール
ファイル名のルール
ファイル名の命名規則は、「(プラグインID)_(コールバック名).php」です。「dynamicmtml_pack_post_init.php」であれば、「dynamicmtml_pack」がプラグインID、「post_init」がコールバック名です。コールバック名は、コールバックが発生するタイミングを示しています。「post_init」は、DynamicMTML アプリケーションの初期化が終わったあと実行されるコールバックです。
コールバック名の候補は、$MT_HOME/addons/DynamicMTML.pack/php 内を「run_callbacks」で grep すると見つかります。
関数名のルール
コールバックが発生した際、プラグインのファイル内で定義した関数が呼ばれます。関数の命名規則はファイル名と類似しており、「function (プラグインID)_(コールバック名)」です。「dynamicmtml_pack_post_init.php」であれば下記のようになります。
<?php
function dynamicmtml_pack_post_init ( $mt, &$ctx, &$args ) {
$app = $ctx->stash( 'bootstrapper' );
// 動作内容を記述
}
?>
$app は、DynamicMTML アプリケーション本体です。利用できるメソッドは $MT_HOME/addons/DynamicMTML.pack/php/class.dynamicmtml.php 内に定義されている関数を確認してください。
設置場所のルール
(各プラグインのフォルダ)/php/callbacks 内に格納します。DynamicMTML の場合は $MT_HOME/addons/DynamicMTML.pack/php/callbacks、「Sample」という名前のプラグインであれば $MT_HOME/plugins/Sample/php/callbacks です。
サンプルファイルのコピーと編集
- $MT_HOME/addons/DynamicMTML.pack/php/callbacks
を作成し、「dynamicmtml_pack_post_init.php」をコピーします。設置した dynamicmtml_pack_post_init.php をエディタで開きます。
<?php
function dynamicmtml_pack_post_init ( $mt, &$ctx, &$args ) {
$app = $ctx->stash( 'bootstrapper' );
echo 'THIS IS CALLBACK post_init !'; // 追記
$app->log( 'CALLLBACK TEST(post_init)' ); // 追記
DynamicMTML を通して表示されるコンテンツにブラウザでアクセスすると、画面内に「THIS IS CALLBACK post_init !」と表示されます。また、管理画面のシステムログに「CALLLBACK TEST(post_init)」が記録されていれば正しく動作しています。前述の命名規則に従いながら、オリジナルのプラグインを作成してみてください。
- 一覧へ