问题描述
||
我已经生成了带有如下页面的菜单:
$pageSettings = array(
\'route\' => \'catalog\',\'label\' => $element->getName(),\'module\' => \'default\',\'controller\' => \'catalog\',\'action\' => \'index\',\'params\' => array(\'cat\' => $element->getUrl()),\'order\' => $element->getorder(),\'id\' => \'catalogID_\' . $element->getId(),);
$contentMenuTree->addPage($pageSettings);
其中“ 1”是Zend_Navigation实例。
并在引导程序中有一条路线:
$router->addRoutes(array(
\'catalog\' => new Zend_Controller_Router_Route(\'/catalog/:cat\',array(\'module\' => \'default\',\'index\' => \'index\',\'cat\' => null))
));
如果我呼叫site.ru/catalog/test,则$ contentMenuTree中没有活动页面。
所以我找到了补丁,但似乎不正确:
$front = Zend_Controller_Front::getInstance();
$action = $front->getRequest()->getActionName();
$cat = $front->getRequest()->getParam(\'cat\');
$module = $front->getRequest()->getModuleName();
$controller = $front->getRequest()->getControllerName();
if ($controller == \'catalog\' && $module == \'default\'
&& $action == \'index\' && $cat==$element->getUrl())
$pageSettings[\'active\'] = true;
为什么zend_navigation不会自动获得活动页面元素?
解决方法
您的路由器中没有
action
我认为应该
$router->addRoutes(array(
\'catalog\' => new Zend_Controller_Router_Route(\'/catalog/:cat\',array(\'module\' => \'default\',\'controller\' => \'catalog\',\'action\' => \'index\',\'cat\' => null))
));