D3モジュールフロントコントローラの限界

Date 2006-10-17 17:47:32 | Category: XOOPS

in englishin japanese
本日10/17、ついにXoopsCube 2.1betaがリリースされました。
お疲れ様でした!

そのCube2.1betaを試してみて、いろいろ問題が出たので、モジュール作者として出来ることをしばらく記事にしていこうと思っています。

突然ですが、Webアプリケーションにおける入口は、極力少なくするべきです。
そのポリシーに従って、D3モジュールでは、管理画面も公開画面も、index.php で統一してきました。それでも、Cube 2.1alphaでは動いていたのですが、Cube 2.1betaでは、完全に動かなくなってしまいました。
この判断によって、管理画面だと判断されないためです。

		if(count($urlInfo)>=3) {
			if(strtolower($urlInfo[0])=="modules" && strtolower($urlInfo[2])=="admin"){
				$adminStateFlag=true;
			}
			elseif($urlInfo[0] == "modules" && $urlInfo[1] == "system" && substr($urlInfo[2], 0, 9) == "admin.php") {
				$adminStateFlag=true;
			}
		}
		elseif(substr($urlInfo[0], 0, 9) == "admin.php") {
			$adminStateFlag=true;
		}

それでも、$_SERVER['REQUEST_URI'] を書き換えるなどすれば、なんとか動かせるのですが、そこまで裏技的な方法を使ってまで、index.phpに固執するのもどうかと、完全にあきらめました。

ここは素直に、管理画面については、admin/index.php を入口にするように、方針を変更します。

おそらく、wrapsの管理画面も同様の理由で、Cube2.1betaでは動かないと思いますが、こちらについても軌道修正します。

この軌道修正では、XOOPS_ROOT_PATH側もアップデートを行う必要がある点に注意が必要です。なるべく、そういうアップデートが必要ないように設計したつもりだったのですが、残念です。




You can read more news at PEAK XOOPS.
http://xoops.peak.ne.jp

The URL for this story is:
http://xoops.peak.ne.jp/md/news/index.php?page=article&storyid=378