2011-01-30 1 views
1

젠드 탐색에서 "동적"빵 부스러기를 만들기 위해, 나는어떻게 Zend_Navigation와

Home > Projects > Collaborators 

하지만 어떤 식으로 뭔가를 할 수

Home > Project name > Collaborator name 

가 어떻게이 acheive 수 있습니다 더 유용 뭔가? 좋은 생각입니까? 아마도 성능 문제가있을 수 있습니까? 그것은 계층 구조를 쿼리해야합니까? 그러나 그것이 무엇이든, 어떻게 이것을 할 수 있습니까?

답변

4

예제 # 34는 이동 경로에 대한보기 부분을 사용하는 방법을 보여줍니다. 나는 $this->pagesforeach을하고

http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.navigation.breadcrumbs

+0

+1. 나는 이것이 이것을하는 가장 쉬운 방법이라고 생각한다. 또 다른 방법은 네비게이션 컨테이너로 직접 게임하는 것이지만 Ashley가 제안하고 불필요한 상황에서는이 작업이 더 복잡합니다. – Marcin

2

가장 쉬운 방법은 빵 부스러기를 렌더링하고이 문자열 공동 작업자의 이름에 추가하는 것입니다 필요한 경우 조정 것입니다.

네비게이션이나 사이트 맵에이 기능이 필요하지 않는 한 작동하지 않습니다. 그렇지 않으면 컨테이너에 수동으로 추가해야합니다.

$this->navigation() 
    ->getContainer() 
    ->findOneByLabel('Colaborators') 
    ->addPage(array('label'=>'name', 'uri'=>'/name')); 
+0

이것은 내 사이트 중 하나에 대한 동적 사이트 맵을 만드는 데 정말로 도움이되었습니다. 고맙습니다. –

1

어쩌면 조금 늦었을 수도 있습니다. 그러나이 문제로 어려움을 겪어 왔기 때문에 누구에게나 도움이 될 수 있도록 게시하고 있습니다.

당신은 현재 페이지가이 방법에 할 수있는 가장 쉬운 방법의 실제 레이블을 변경하려면 : 당신이 Zend_Routes를 사용하는 경우이 경우

$this->view->navigation()->findOneByRoute(
           Zend_Controller_Front::getInstance() 
                ->getRouter() 
                ->getCurrentRouteName() 
          ) 
         ->setLabel($label); 

findOneByRoute이 charmly 작동을 그렇지 않으면 에 의해 변경할 수 있습니다. findOneByX, X는 해당 페이지의 속성입니다. 영업 이익의 질문에 응답

,이 경우, 쉽게 할 수있을 것입니다 :

$this->view->navigation()->findOneByLabel('Collaborators') 
         ->setLabel('Collaborator'. $name); 

존재 $ 이름, 협력자의 이름.

아직 ZF1을 사용하는 사람들에게 도움이되기를 바랍니다.

인사말,