PEAK XOOPS - $xoopsOption['pagetype'] in englishin japanese

Archive | RSS |
XOOPS
XOOPS : $xoopsOption['pagetype']
Poster : GIJOE on 2006-05-21 04:10:00 (9239 reads)

in englishin japanese
$xoopsOption['pagetype']
これ、なんだか判りますか?

読んで字の如く「ページタイプ」なのですが、おそらくはNukeの名残と思われ、XOOPS 2.0.xにおいては、コア機能(より正確にはルートコントローラ)の区別をつけて、適切な言語ファイルを読み込むためだけに利用されています。

実のところ、このようなグローバル配列をファイル間通信に利用するのは結構危険なことで、リクエストからインジェクションされる恐れがあります。(ファイル間通信を行うなら、定数かオブジェクトが安全)

また、ルートコントローラの存在しないXoopsCubeでは、完全に消え失せる運命でしょう。(こちらについてはgrepかけていませんが)

その「尾てい骨」こと $xoopsOption['pagetype'] ですが、XOOPS 2.2では再利用されています。$xoopsOption['pagetype'] == 'admin' の時だけ、管理者用のテーマを読み込む、という形になっているのです。

通常のモジュールであっても、/modules/(module)/admin/index.php などという形で管理者コントローラを実装した場合であれば、kernel/module.php において $xoopsOption['pagetype'] = 'admin'; と定義されるので、ほとんどの場合うまく行きます。

しかし、D3モジュールのように、完全なフロントコントローラを目指して、index.php?mode=admin などという形で管理者画面を実装した場合、公開用テーマが適用されてしまうことになります。

そこで、$xoopsOption['pagetype'] = 'admin'; を明示的に実行する必要があります。

以上、XOOPS 2.2にも利用できるモジュールを作る場合には覚えておいて損はないミニ知識でした。

0 comments
Printer friendly page Send this story to a friend

Comments list

Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!