如何将class =“current”应用于<a href="..."> tag when using Zend_Navigation?</a>

时间:2010-12-03 01:27:47

标签: php zend-framework zend-navigation


正如您可以从标题中读取的那样,我正在尝试将class="current"部分添加到我的zend_navigation呈现的HTML锚标记中。

这就是我所拥有的:

bootstrap.php中

protected function _initNavigation(){
         $this->bootstrap('layout');
         $layout = $this->getResource('layout');
         $view = $layout->getView();
         $config = new Zend_Config_Xml(APPLICATION_PATH .'/configs/navigation.xml','nav');
         $navigation = new Zend_Navigation($config);
         $navigation->current()
         $view->navigation($navigation);
     } 

然后在View脚本中:

<div class="NavMenu">
  <?= $this->navigation()->menu(); ?>
</div>

我很确定有一些标准和正确的方法,但经过大约几个小时的搜索后,我无法找到答案。非常感谢你的帮助。

2 个答案:

答案 0 :(得分:5)

将它贴在你的控制器中......

public function init()
{
            $uri = $this->_request->getPathInfo();          
            $activeNav = $this->view->navigation()->findByUri($uri);
            $activeNav->active = true;
            $activeNav->setClass("active");
}

有关更多信息,请阅读Zend_Navigation_Page

中setClass方法的注释

http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Navigation/Page.php

答案 1 :(得分:0)

您可以创建自己的菜单视图部分,或者如果您只想定位活动菜单项下的链接,请尝试

li.active > a
在你的CSS中