Как применить class = "current" к тегу <a href=...> при использовании Zend_Navigation? - PullRequest
1 голос
/ 03 декабря 2010


Как вы можете прочитать из заголовка, я пытаюсь добавить class="current" часть к тегу привязки HTML, который отображает моя zend_navigation.

Вот что у меня есть:

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);
     } 

А затем в сценарии просмотра:

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

Я почти уверен, что есть какой-то стандартный и правильный способ сделать это, но примерно через пару часов поиска я не могу найти свой ответ. Большое спасибо за вашу помощь.

Ответы [ 2 ]

5 голосов
/ 03 декабря 2010

Вставьте это в свой контроллер ...

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

Для получения дополнительной информации прочитайте комментарии метода setClass в Zend_Navigation_Page

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

0 голосов
/ 03 декабря 2010

Вы можете создать свой собственный частичный вид меню или, если вас интересует только таргетинг ссылок в активном пункте меню, попробуйте

li.active > a

в вашем CSS.

...