2013-01-07 49 views
1


我正在使用zend导航来创建菜单。我想将默认类“活动”更改为“选定”,我也想将该类添加到活动链接的锚点标记。 这里是我已经把引导
如何在zend导航中更改子菜单活动类?

protected function _initNavigation() 
{ 

    $pages = array(
         array(
          'module' => 'admin', 
          'label' => 'Services', 
          'resource' => 'admin', 
          'controller' => 'services', 
          'pages' => array(
           array(
            'module'  => 'admin', 
            'label'   => 'Add Services', 
            'controller' => 'services', 
            'action'  => 'manage', 
            'route'   => 'default', 

            ), 
           array(
            'module'  => 'admin', 
            'label'   => 'View Services', 
            'controller' => 'services', 
            'action'  => 'view', 
            'route'   => 'default', 
            ), 
           ), 
          ) 
         ); 

      $this->bootstrap('layout'); 
      $layout = $this->getResource('layout'); 
      $view = $layout->getView(); 

    $config = new Zend_Config($pages); 
      $navigation = new Zend_Navigation($config); 
      $view->navigation($navigation); 
} 



在我看来,剧本在布局我的示例代码,我已经把这个下面的代码

echo $this->navigation()->menu() 
         ->setUlId('menu'); 


电流输出

<ul class="navigation" id="menu"> 
<li class="active"> 
    <a href="/test/public/admin/services">Services</a> 
    <ul> 
     <li> 
      <a href="/test/public/admin/services/manage">Add Services</a> 
     </li> 
     <li class="active"> 
      <a href="/test/public/admin/services/view">View Services</a> 
     </li> 
    </ul> 
</li> 


期望输出

<ul class="navigation" id="menu"> 
<li> 
    <a href="/test/public/admin/services">Services</a> 
    <ul style='display:block;'> 
     <li> 
      <a href="/test/public/admin/services/manage">Add Services</a> 
     </li> 
     <li> 
      <a class='selected' href="/test/public/admin/services/view">View Services</a> 
     </li> 
    </ul> 
</li> 

回答

1

你必须只设置对象 '视图' 注册表以 '_initNavigation()' 末端在自举方法。

Zend_Registry::set("view", $view); 

创建插件 'TestNavigation',在添加以下代码

public function routeShutdown(Zend_Controller_Request_Abstract $request) 
{ 

    foreach (Zend_Registry::get('view')->navigation()->getPages() as $page) { 

      foreach ($page->getPages() as $subpage){      
       $uri = $subpage->getHref(); 
       if ($uri === $request->getRequestUri()) { 
        $subpage->setClass('selected'); 
       } 
      } 
    } 
} 

就是这样,你做了。

+0

谢谢!有用 –

相关问题