D3モジュールの問題点として、イベント通知処理が面倒、というのがあります。
X2のNotificationHandlerは、triggerEvent()する時に、
ROOT/modules/(dirname)/language/(lang)/mail_template/(mail_template).tpl
を読みに行きます。
そこにファイルが無かった時点で、イベント通知は無効だとして処理がスキップされてしまいます。
それを回避するために、d3forumやpicoでは、それぞれ独自のtrigger_event関数を作っていたのですが、それは明らかに工数の無駄です。
D3モジュール用に、イベント処理テンプレートファイルをTRUST_PATHの下からも検索してくれる共通のルーチンを書けば良いだけです。
D3モジュールを使うならaltsys必須
というのも事実上ルール化してますので、D3NotificationHandlerクラスをaltsysに追加しました。
使い方は簡単です。
$notification_handler =& xoops_gethandler( 'notification' ) ;
$notification_handler->triggerEvent($category, $item_id, $event, $extra_tags, $user_list, $module_id, $omit_user_id);
require_once XOOPS_TRUST_PATH.'/libs/altsys/class/D3NotificationHandler.class.php' ;
$notification_handler =& D3NotificationHandler::getInstance();
$notification_handler->triggerEvent($mydirname, $mytrustdirname, $category, $item_id, $event, $extra_tags, $user_list, $omit_user_id);
ROOT/modules/(mydirname)/language/$language/mail_template/
TRUST/modules/(mydirname)/language/$language/mail_template/
ROOT/modules/(mydirname)/language/english/mail_template/
TRUST/modules/(mydirname)/language/english/mail_template/