2013-11-21 2 views
1

Zend2에서 재사용 가능한 모듈로 작업하고 있는데 코드 중복 문제가 있습니다.zend 2 다른 모듈에서 같은 이름의 렌더링 템플릿을 렌더링합니다.

나는 HTML 템플릿 레지스터 (템플릿 경로 : 사용자/사용자/레지스터)가있는 사용자 모듈을 사용하고 있습니다. 기본 HTML이 포함되어 있지만 내 프로젝트 중 하나에서 < div>와 함께이 템플릿을 포함시켜 CSS 스타일을 지정해야합니다 (나머지 HTML 페이지는 변경되지 않음).

사용자 모듈 다음에 user/user/register 템플릿을 덮어 쓰고 새 코드를 넣을 수있는 응용 프로그램 모듈을로드하지만 원래 사용자/사용자/등록 템플릿을 렌더링 할 수 없습니다.

<div><?=$this->render('user/user/register')?></div> 

이 무한 루프의 원인 및 I/복사 내 사용자/사용자/레지스터에서 모든 HTML을 붙여 넣을하지 않습니다 - 응용 프로그램 모듈의 코드

예> 사용자/사용자/등록 사용자 모듈의 템플릿

누구든지 나를 도와 줄 수 있습니까?

감사합니다.

답변

0

달성하려는 것은 효과가 없습니다. 동일한 이름을 가진 두 개의 템플리트를 가질 수 없습니다. 키를 최신으로로드하는 모듈은 항상 우선 순위를가집니다.

템플릿은 큰 배열 안에있는 키라는 것을 알아야합니다. 이 구성을 제공하는 두 개의 모듈이있는 경우

'view_manager' => array(
    'template_map' => array(
     'layout/layout' => 'my\layout.phtml' 
    ) 
) 

그래서, 그것은 모두 키 layout/layout를 사용한다는 사실을 변경하지 않습니다. 따라서 모듈이 나중에로드되면 무엇이든 승리합니다.

TL/DR 템플릿은 확장 할 수 없으며 덮어 쓸 수만 있습니다. 귀하의 경우 별도의 템플릿을 만들어야합니다.

+0

필자가 방금 묻는 것은 실제로 두 번째 템플릿의 내용과 몇 가지 html 코드를 더한 두 개의 템플릿간에 코드를 복제하지 않는 방법입니다. 솔루션을 찾지 못해서 템플릿 코드를 복제했지만 서식 파일을 추가로 업데이트하기 위해 코드 채무가 많이 생성됩니다. 특정 모듈에서 템플릿 경로에 도달하는 방법이 있습니까? 내가 User/user/user/user/user/register를 Application 모듈의 user/user/template 템플릿에서 User 모듈로 렌더링하고 싶습니다. –

+0

당신은 동일한 템플리트 이름을 사용해서는 안됩니다. 전체 아이디어입니다. 템플릿은 클래스처럼 이름 공간을 가져야합니다. 이름 ur 2 모듈 "user2/user/register"그리고 나서 부분 "user/user/register"를 렌더링하면 좋다. – Sam

+0

좋아, 알았다. 내 응용 프로그램 모듈이 route user/register를 다시 작성해야하며 "ApplicationUser"를 컨트롤러로 사용하라는 메시지를 표시 한 다음 "ApplicationUser"컨트롤러 -> registerAction은 내 사용자 모듈 (registerAction)에 요청을 전달하고 결과. 호출 된 뷰는 이제 application/application-user/register이고 이것은 부분 "user/user/register"템플리트를 렌더링합니다. Thx 많이 있습니다. –

관련 문제