2013-01-07 2 views
1


메뉴를 만들려면 zend 탐색을 사용하고 있습니다. 기본 클래스 'active'를 'selected'로 변경하고 활성 링크의 앵커 태그에 클래스를 추가하려고합니다. 가 여기 레이아웃에서 내보기 스크립트에서 부트 스트랩
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); 
} 



에 넣어 가지고 내 샘플 코드 I 코드

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()'의 마지막 부트 스트랩 방법에서 객체 '보기'에 대한 레지스트리를 설정해야합니다. 그거야 그 추가 다음 코드

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

에서

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

플러그인 'TestNavigation'를 만들기는, 당신은 했어요.

+0

감사합니다. 그것은 작동합니다. –

관련 문제