cubeUtils モジュール

1.これは何?

CubeUtilsモジュールは、XOOPS Cube2.1に対する、ある程度実用的なユーティリティー群です。

XOOPS 2.0.x JP用のSysUtilモジュールにて用意していたGIJOE氏開発の以下のHACKと同等機能を、
XOOPS Cube2.1のPreload機能及びDelegate機構を使用して実装したモジュールです。

2.どうやって使うの?

このモジュールが動く環境は、XOOPS Cube2.1以降が前提となります。

[ja]日本語[/ja][en]English[/en]

の様に記述することによって、日英両対応のコンテンツが作成出来ます。

[ja]mlimg[/ja]

を文書に挿入すると、言語切り替え用国旗イメージを表示する事ができます。


3.どのように作られているの

1) AutoLogin

AutoLogin機能は、基本的には、Legacy_Controller.SetupUserのDelegate関数を実装する事によって実現されています。
実際には、ログインブロックでの入力内容をクッキーに記憶したり、破棄したりするためにそのほかにも幾つかのDelegate関数が実装されています。

Legacy_Controller.SetupUser
セッションが継続していなくても、クッキーにログイン情報が格納してれば、自動ログインを試みる
Site.CheckLogin.Success
ログイン画面にてログインが成功したときにログイン情報をもとにしてクッキーを生成する
Site.Logout
ログアウト時に、保存したクッキーを破棄する
Legacypage.User.Access
RemenberMe付きのログイン画面を表示させる

これらのDelegate関数の定義と実装については、モジュールPreload機能によって自動的に読み込まれるようになっています。
(/modules/cubeUtils/preload/AutoLoginHack.class.php)

2)EMLH(Easiest Multi Language Hack)

Legacy_Controller.GetLanguageName Delegate関数の実装を行い、この関数内でGETパラメータ、クッキー、ブラウザの
プリファレンスを元にして、表示言語を決定します。
このDelegate関数の定義については、preFilter()の段階で行う必要があるため、モジュール内Preloadでは無く、
/preloadにMultiLanguagePreLoad.class.php を配置しています。
言語タグの扱いについては、EMLHと同様 ob_filteringにて実現しています。
別途CacheSystemでのID生成にもフックを加えて、言語毎のCacheを保存する事を可能にしています。

4.変更履歴