2012-02-09 2 views

답변

8

placholder는 뷰와 레이아웃 사이에서 데이터를 유지하는 데 사용되며 부분은 특정 작업을 수행하는 특정보기에서 사용됩니다.
참조에서 발췌 한 내용을 참조하십시오.

77.4.1.6. 자리 표시 자 도우미 : 자리 표시 자보기 도우미는보기 스크립트와보기 인스턴스간에 콘텐츠를 유지하는 데 사용됩니다. 또한 은 콘텐츠 집계, 나중에 사용하기 위해 스크립트 내용보기, 콘텐츠 (및 집계 된 콘텐츠의 사용자 지정 구분 기호)에 사전 및 사후 텍스트를 추가하는 것과 같은 유용한 기능을 제공합니다.

77.4.1.5. 부분 도우미 : 부분 뷰 도우미는 지정된 변수 범위 내에서 지정된 템플릿을 렌더링하는 데 사용됩니다. 변수 이름 충돌에 대해 걱정할 필요가없는 재사용 가능한 템플릿 조각의 기본 용도는 입니다. 또한 특정 모듈의 부분보기 스크립트 을 지정할 수 있습니다.

다음은 원하는 것처럼 들리는 간단한 자리 표시 자의 예입니다. (데이터를 유지)

이 경우에는 메뉴 ID가 부트 스트랩에 설정되어 있지만이 것은 간단하지 않습니다.

protected function _initMenus() { 

     $view = $this->getResource('view'); 
     $view->mainMenuId = 4; 
     $view->adminMenuId = 5; 
    } 

[편집]

더 좋은 자리 예는 순서에있을 수 있습니다 생각합니다. 이 자리 표시자는 여러 구성에서 여러 컨트롤러의 여러 동작에서 사용하는 작은 검색 양식입니다.

이 형식은 음악 아티스트 만 검색하도록 설정되어 있으므로이 자리 표시자를 사용하는 컨트롤러는 setAction(), 다른 레이블 및 경우에 따라 다른 자리 표시 자 텍스트에 대해 다른 경로를 갖습니다. 나는이 형식을 사용하여 음악 및 비디오 데이터베이스를 검색합니다.

저는 항상 동일한 설정을 사용하거나 플러그인을 설치하는 데 더 많은 관심을 가지고 있습니다.

내 레이아웃에서 자리 표시자를 사용합니다 (모든보기 스크립트에서도 사용할 수 있음). placeholder에 값이있을 때 검색 양식이 렌더링되고 placeholder에 값이 없을 때 렌더링되지 않습니다.

//in the layout.phtml 
<?php echo $this->layout()->search ?> 

는 단지 완료된 것으로, 여기서 폼이 viewscript 장식으로 사용하는 부분이다.

<article class="search"> 
    <form action="<?php echo $this->element->getAction() ?>" 
      method="<?php echo $this->element->getMethod() ?>"> 
     <table> 
      <tr> 
       <th><?php echo $this->element->query->renderLabel() ?></th> 
      </tr> 
      <tr> 
       <td><?php echo $this->element->query->renderViewHelper() ?></td> 
      </tr> 
      <tr> 
       <td><?php echo $this->element->search ?></td> 
      </tr> 
     </table> 
    </form> 
</article> 

이 예제는 부분 및 자리 표시 자의 차이점을 실제로 설명해야합니다.

+0

설명해 주셔서 감사합니다. 두 가지 유스 케이스의 간단한 예가 있습니까? 차이점 컨트롤러뿐만 아니라 모듈을 국가 드롭 다운에 배치해야하는 요구 사항이 있습니다. 그렇다면 템플릿을 한 곳에서 유지하고 컨트롤러뿐만 아니라 모듈 전체에서 템플릿을 다시 사용하는 야수 방법은 무엇입니까? – neeraj

1

나는 당신이 여기, 중 사용자 정의보기 도우미 아마도 기존 Zend_View_Helper_FormSelect 클래스를 확장하거나 사용자 정의 필요에 맞는 젠드 양식 요소를 만들 더 도움이 될 일을 생각합니다. 또는 일반적인 위치에있는 도우미 스크립트가 최선의 방법 일 수 있습니다.

+0

내가 원하는 것은 각 컨트롤러의 preDispatch에서 제공하는 대신 단일 장소에서 국가의 동적 배열을 제공하는 것입니다. 내 dropdown.phtml은/application/views/scripts 폴더에 있으며, 다른 모듈과 컨트롤러에 걸쳐 zend partial/placeholder를 사용하여 phtml을 재사용하고 싶습니다. – neeraj

+0

여기에 내 dropdown.phtml 코드 countries) && count ($ this-> countries)> 0) :?> > neeraj