CubeUtilsモジュールは、XOOPS Cube2.1に対するある程度実用的なサンプルです。
しかしながら、あくまでもXOOPS Cube2.1の柔軟性に対する実証用モジュールですので、まだまだ安定版ではありません。
XOOPS 2.0.x JP用のSysUtilモジュールにて用意していたGIJOE氏開発の以下のHACKと同等機能を、
XOOPS Cube2.1のPreload機能及びDelegate機構を使用して実装したモジュールです。
このモジュールが動く環境は、XOOPS Cube2.1 Alpha4-b 以降が前提となります。
[ja]日本語[/ja][en]English[/en]
の様に記述することによって、日英両対応のコンテンツが作成出来ます。
[ja]mlimg[/ja]
を文書に挿入すると、言語切り替え用国旗イメージを表示する事ができます。
AutoLogin機能は、基本的には、Site.LoginのDelegate関数を実装する事によって実現されています。
実際には、ログインブロックでの入力内容をクッキーに記憶したり、破棄したりするためにそのほかにも幾つかのDelegate関数が実装されています。
これらのDelegate関数の定義と実装については、モジュールPreload機能によって
自動的に読み込まれるようになっています。
(/modules/cubeUtils/preload/AutoLoginHack.class.php)
Legacy_Controller.GetLanguageName Delegate関数の実装を行い、この関数内でGETパラメータ、クッキー、ブラウザの
プリファレンスを元にして、表示言語を決定します。
このDelegate関数の定義については、preFilter()の段階で行う必要があるため、
モジュール内Preloadでは無く、/preloadにMultiLanguagePreLoad.class.php を配置しています。
言語タグの扱いについては、EMLHと同様 ob_filteringにて実現しています。
別途CacheSystemを標準のstdRenderCacheを継承したクラスに置き換えて、言語毎のCacheを保存する事を可能にしています。