동적 런타임에서 컨테이너에 Zend_Navigation 페이지를 추가합니다
대한 Zend_Navigation 게시 계속 내 마지막으로 / 액션 컨트롤러에 사용자 정의로가는 요청에 대해 sitemap.xml에 ,이 게시물은 실행에 대해 스크립트 / 런타임 Zend_Navigation 컨테이너에서 dymnamically 추가 페이지를합니다.
그 모든 잘하거나의 INI에 페이지를 잘 지정하여 XML을 파일에 있지만 사이트에의 페이지를 변경해야하고가는 당신은 어떤 시점 흔적 그 breadcrumb 메뉴 중 당신이 원하는대로 일부 사이트맵 당신에 포함하거나이 있습니다. 그러므로 우리는 런타임에 우리의 Zend_Navigation 컨테이너에 페이지를 추가합니다해야 할 일을. 이것에 대한 예제는 뉴스 항목을 블로그 게시물 또는 페이지 댓글 등의 추가하는 것입니다
이 예에서 나는 설정 내 정적으로 정의의 INI에 몇몇 뉴스 게시물을 추가하는거야. 나의 뉴스 게시물 페이지 구성을 위해서 난 다음과 같은 형식의 배열을 반환하는 클래스를 사용했습니다 :
달러 (= 배열을 pagesToAdd 0 => 배열 ( '레이블'=> '가짜 뉴스 기사 # 5 ...', '모듈'=> 'www'를, '경로'=>에 'www - 지수', '액션'=> '보기', '컨트롤러'=> '뉴스', '매개 변수'=> 배열 ( '아이디'=> '5 - 가짜 뉴스 층 - 5 ') ) 1 => 배열 (/ * 기타 페이지 세부 정보 * /), );
당신이 함수가있는 구성 Zend_Navigation_Page_Mvc에 대한 배열을 만들어 배열을 포함된 배열을 반환했습니다 것을 알 수있다. 따라서, 배열 새로운 Zend_Navigation 페이지 이상 반복하여 설정 배열에서 만들 수 있습니다. 루프의 일부가 올바른 위치에 페이지를 추가하는 것입니다으로서 다음에 할 일은 (를 사용하여 또는 페이지가 대량으로 추가할 수 있습니다 -> addPages () 메서드를).
이렇게하려면, 당신은 어디에 하위 페이지를 추가하기만하면 페이지를 추가하려는 페이지를 찾습니다. 이 경우 내 페이지를 찾으려면 다음 코드를 사용있다 :
$ 컨테이너 -> findOneBy는 ( '라벨', '최신 뉴스') -> addPage ($ 페이지); 부트 스트랩에 내 전반적인 탐색 초기화 따라서 다음과 같습니다 :
/ ** * 최상위 탐색을 처리하는 데 사용 * * @ 반환 Zend_Navigation * / 보호 기능 _initNavigation () { $이 -> 부트 스트랩은 ( '레이아웃'); $ 레이아웃 = $이 -> getResource ( '레이아웃'); $ 전망 = $ 레이아웃 -> getView (); $ config를 = 새로운 Zend_Config_Ini ( APPLICATION_PATH. '/ configs / navigation.ini', APPLICATION_ENV); $ 컨테이너 = 새로운 Zend_Navigation ($ 설정 -> 기본값); / / 이제 지난 25 뉴스 보도를 추가 $ 뉴스 = 새로운 뉴스 (); 페이지 $ = $ 뉴스> getNavigationEntries (); foreach ($ $ 그대로 페이지 페이지) { $ 페이지 = 새로운 Zend_Navigation_Page_Mvc ($ 페이지); $ 컨테이너 -> findOneBy는 ( '라벨', '최신 뉴스') -> addPage ($ 페이지); } $보기 -> 탐색 ($ 컨테이너); }
추가에 필요한 것은 사용하여 캐싱 (형태의 일부 Zend_Cache 페이지의 각 하중 아마도;)와 함께 꽤 비싼 수)에가는 그렇지 않으면이 있습니다.


















































정말 명확한 예를 들어, 고마워 - 그건 찾던 바로 내가 뭘거야. 건배. G 조
좋은 게시물! 좀 문제가 부트 스트랩에서 모델 수업을 시작했습니다. 왜 애플 리케이션 / 모델 클래스는 부트 스트랩에서 사용할 수 없습니다 단서? 여러분의 클래스가 호출 '새로운 뉴스 ()'를, 대신 내가 모델 클래스에서 탐색 트리를 지내는 탐색 페이지를 추가하고 싶습니다. 당신은 아이디어가있다면, 내가 알려주시기 바랍니다! ;)
나의 모델은 게시물 수정되었다 코드의 정확한 이름은 Pro_News되고 자동 로더에 의해 포착됩니다.
추측이 모듈을 사용하지 않는거야? 하지만 그렇다면 당신의 모델이 (필자는이 시스템을 직접 사용하지 않는) ZF에 대한 _News는 기본적으로 데리러이라고한다.
나는 그것이 "/ 모델 응용 프로그램을"이 포함되어 있는지 확인하거나 수동으로 파일을 포함하여 부트 스트랩 메서드에서 경로를 포함 확인하시기 바랍니다 싶어요.
글쎄 모듈, 내 잘못 사용합니다. 하지만 일을해야 자동 로딩 제안? 음, 내가 좀 더 깊이로 파고로했습니다. 순간 난 정말 성능 친절한 ... hehe되지 않은 BaseControllers에 addPage 함수를 사용합니다. 답장을 보내주셔서 감사합니다.
보장은 모듈 모델이 이름이 정확한지 _News (예를 들어) 그리고 그것은 자동 로딩을 사용하여 픽업한다.
나의 모델은 게시물 수정되었다 코드의 정확한 이름은 Pro_News되고 자동 로더에 의해 포착됩니다.
추측이 모듈을 사용하지 않는거야? 하지만 그렇다면 당신의 모델이 호출되어야합니다 (필자는이 시스템을 직접 사용하지 않는) ZF에 대한 _News는 기본적으로 데리러.
나는 그것이 "/ 모델 응용 프로그램을"이 포함되어 있는지 확인하거나 수동으로 파일을 포함하여 부트 스트랩 메서드에서 경로를 포함 확인하시기 바랍니다 싶어요.