Joomla! system プラグインの動作(mobile Joomlaのデバイス検出)
joomla のプラグインクラスでは、onAfterRoute onAfterInitialize など、クラスメソッドを作成しておくと、そのイベントで該当のクラスメソッドが呼ばれます。
プラグイン内で、 $app -> regusterEvent で、動的にイベントを追加することもできます。
$app-> triggerEvent で、イベントを発生させることができます。
onHogehoge というクラスメソッドを作っておいて、 $app->triggerEvent('onHogehoge', array($hoge));
などすると、onHogehoge が実行されます。
こうやって、Joomla 自体に大きな機能を組み込むことができるわけです。
Mobile Joomla のプラグイン本体は、 system/mobilebot/mobilebot.php で、ここから全てが動作しているようです。
mobile joomlaの、デバイス検出は、mobile グループのプラグインの onDeviceDetect イベントで取得されます。
mobile joomla では、imode(chtml) 端末にはDoCoMoしか入っておらず、AUやSoftbankの端末が含まれていません。
USER AGENT からAU Softbankもchtmlとして判別されるプラグインを作成し、mobile グループに登録。
mobile AMDD, mobile Simple の両モジュールは無効にすることで、この問題が解決できます。