2010-02-23 2 views
0

저는 현재 XML 파일을 통해 zend_navigation을 사용하고 있습니다.Zend_Navigation은 배열로 덮어 쓰시겠습니까?

그러나 이전 탐색 경로를 컨트롤러에서 동적 부모로 덮어 쓸 필요가 있습니다.

이것이 가능합니까? zend_navigation은 꽤 정적이며 zend 문서는 시간 제한을 유지합니다.

감사


내가 넣어 가지고

:

public function addAction() { 

     $this->view->navigation()->addPage(array(
      'type' => 'uri', 
      'label' => 'New page') 
     ); 
내 컨트롤러에서

하지만 crumbbar 해당 페이지를 위해 표시되지 않습니다.

아이디어가 있으십니까? $ this-는> 탐색() 내 crumbBar는 개별 뷰 내 레이아웃이 아닌 것을 참고 또한

Method "navigation" does not exist and was not trapped in __call() 

을 던졌다.

답변

2

예 배열을 사용할 수 있습니다.

정말로해야 할 일은 배열을 만든 다음 Zend_Navigation 팩토리에 입력하여 페이지를 만듭니다.

불행히도 내 코드는 너무 복잡하여 내가 어떻게 사용했는지 보여주는 예가 아닙니다. 하지만 간단한 예제를 제공 할 것입니다 ...

네비게이션 컨테이너를 만들었 으면 네비게이션 컨테이너에 새 페이지를 추가하기 만하면됩니다.

$this->navigation()->addPage(array(
    'type' => 'uri', 
    'label' => 'New page')); 

좋아하지만 당신은 또한 addPages()을 사용할 수 있습니다. 이것이 제가하는 것입니다.

난 당신이 문서를 기다려야 만 다시로드 할 수 있다고 생각합니다. 그게 사실 쉽지.

더 구체적인 질문이 있으면 질문하고 나에게 멍청이를주십시오. 내비게이션을 꽤 많이 사용해야했기 때문에 꽤 잘 알고 있습니다.

또한 freenode에서 #zftalk를 확인하십시오. 그곳에 많은 도움을 주셨습니다.

+0

zend 문서를로드 해 주셔서 감사합니다. – azz0r

+0

예. 그것은 차질없이로드됩니다. – Layke

0
// Disable Layout 
    $this->view->layout()->disableLayout();  
    $this->_helper->viewRenderer->setNoRender(true); 

    // Output XML than HTML 
    $this->getResponse()->setHeader('Content-Type', 'text/xml; charset=utf-8'); 


    $container = new Zend_Navigation(); 

    // Replace this section with real dynamic data. 
    $pages = array(
     array(
      'label' => 'Save', 
      'action' => 'save', 
     ), 
     array(
      'label' => 'Delete', 
      'action' => 'delete', 
     ), 
    ); 

    // Add pages 
    $container->addPages($pages); 
    $this->view->navigation($container); 

    // Output the data. 
    echo $this->view->navigation()->sitemap(); 

또한이 컨트롤러/기능으로 site.com/sitemap.xml을 리디렉션하기 위해 젠드 라우터를 사용합니다.

여기에 도달하는 데 도움을 주신 많은 개발자에게 감사드립니다.