MainMenu.php里的疑问?

webapp自动生成的MainMenu Widget里的代码

isActive方法里




		if(strpos($pattern[0],'/')!==false)

			$matched=$pattern[0]===$controllerID.'/'.$actionID;

		else

			$matched=$pattern[0]===$controllerID;



else里,$controllerID是不是应该为$actionID?

源代码是对的。它的意图是允许只指定controller id,用来匹配所有该controller的action。

我们正在开发一个新的菜单widget,可以做得更好。这个MainMenu没仔细开发。

不明白。

$pattern[0]里如果没有’/'这个符号的话,不是默认指向当前controller的action么?




array('label'=>'首页', 'url'=>array('index', 'param1'=>'value1'))



这个url应该是指到当前controller下的index Action吧?

还有




$pattern=isset($item['pattern'])?$item['pattern']:$item['url'];



是不是应该放在




if(is_array($item['url']))

				echo $item2['url']=$controller->createUrl($item['url'][0],array_splice($item['url'],1));

			else

				$item2['url']=$item['url'];



这段代码前面。

因为$item[‘url’]被上面array_splice掉了。

可不可以不用这个MainMenu?可以自定义菜单吗?

可以自定义,你把mainMenu widget这段换成你的东西。