PowerCMS™
2025年1月1日購入分よりライセンスの価格を改定いたします。
[ブログ] PowerCMS 6 でのアップデートまとめ を追加しました。
[よくあるご質問] システムログに「タスクを実行するために必要なロックを獲得できませんでした」というログが残っている を追加しました。
[よくあるご質問] 特定のシステムログに絞って確認できますか? を追加しました。

コールバックプラグインの作成

アドオン・プラグイン
タグ

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)」が記録されていれば正しく動作しています。前述の命名規則に従いながら、オリジナルのプラグインを作成してみてください。

一覧へ

お問い合わせ

お問い合わせフォームがご利用できない場合は、以下のメールアドレスからも受け付けております。
contact@alfasado.jp

製品資料ダウンロード

パンフレットデータ、提案用資料などがダウンロードできます。