$xoopsOption['pagetype']
Date 2006-05-21 04:10:00 | Category: XOOPS
|
$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にも利用できるモジュールを作る場合には覚えておいて損はないミニ知識でした。
|
|