CMenu->isItemActive does not check for 'ActionID' (without controller).

The URl route of an action can be specified with just the ActionID ( http://www.yiiframew…reateUrl-detail : "[color="#222222"][font="Arial, sans-serif"][size="3"]If the ControllerID is not present, the current controller ID will be prefixed to the route.").[/size][/font][/color]

[color="#222222"][font="Arial, sans-serif"] [/font][/color]

[color="#222222"][font="Arial, sans-serif"][size="3"]However, CMenu->isItemActive does not prefix the current controller to the route to check if the item is active.[/size][/font][/color]

[color="#222222"][font="Arial, sans-serif"] [/font][/color]

[color="#222222"][font="Arial, sans-serif"][size="3"]Adapting the code as follows makes it work:[/size][/font][/color]

[font="Arial, sans-serif"][size="1"][color="#222222"]




protected function isItemActive($item,$route)

	{

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

		{

		    if(strpos($url=$item['url'][0],'/')===false)

		        $url=Yii::app()->controller->getId().'/'.$url;

		}

		if(isset($url) && !strcasecmp(trim($url,'/'),$route))

		{

			unset($item['url']['#']);

			if(count($item['url'])>1)

			{

				foreach(array_splice($item['url'],1) as $name=>$value)

				{

					if(!isset($_GET[$name]) || $_GET[$name]!=$value)

						return false;

				}

			}

			return true;

		}

		return false;

	}

[/color][/size][/font]