私はそのようなページでメニューを生成しました:
$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);
$contentMenuTree
Zend_Navigationインスタンスはどこにありますか。
そして、ブートストラップにルートを設定します。
$router->addRoutes(array(
'catalog' => new Zend_Controller_Router_Route('/catalog/:cat', array('module' => 'default', 'controller' => 'catalog', '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がアクティブなページ要素を自動的に取得しないのはなぜですか?