php w3schools Zend<dt><dd> 데코레이터:제거하여 잃는 것은 무엇입니까?




w3c em (3)

$element->removeDecorator('DtDdWrapper');

또는 $element->clearDecorators(); 자신의 데코레이터 설정하기.

이 질문은 Zend_Form에만 해당됩니다. Zend_Form은 <dd> <dt> <dl> 과 같은 표준 데코레이터를 추가합니다. 제가 그들을 지우려면 무엇을 잃을까요? 오류보고 나 다른 이유로 Zend_Form 자체에서 사용하고 있습니까?


이것들은 정의 목록에있는 Zend Form 요소의 출력을 구조화하기위한 것입니다. 양식에서 오류를 렌더링하는지 여부는 오류 데코레이터를 통해 제어됩니다.

Matthew Weier O'Phinney의 기사 시리즈를 참조하십시오.

and Rob Allen의 Zend_Form 튜토리얼 :


1) 적어도 프로그래머가 잘되어 있지 않을 때 마크 업 (자신의 데코레이터 작성)이 아닌 CSS를 통해 양식의 모양을 변경하는 것이 가장 간단하고 모범 사례 일 수 있습니다. DdDt 데코레이터를 제거하면 입력 필드 / 레이블 / 오류 목록 위치 지정, 채색, 들여 쓰기 등과 같은 CSS의 많은 가능성이 상실됩니다. 예를 들어, <dt> 또는 <dd> 에 양식 초기화에 고유 한 클래스를 추가 할 수 있습니다.이 클래스는 나중에 사용자의 특정 요구를 충족 시키도록 스타일을 지정할 수 있습니다.

코드보기 :

$comment = $this->createElement('textarea','comment',array(
    'label'=>'Post a comment',
    'required'=>true
))
  ->setDecorators(array(
    'ViewHelper', 
    'label', 
    'Errors', 
    array(
       'HtmlTag', 
       array(
          'tag' => 'dd', 
          'class'=>'elevatedField'
       )
    ) 
 ))
; 

이제 .elevatedField{} 규칙의 CSS 스타일 시트에서이 텍스트 영역의 특정 모양을 정의 할 수 있습니다. 사실,이 예제는 기본 DdDt 데코레이터가 아니지만 <dd> 태그를 잘 활용하는 방법을 설명하고 있습니다. DdDt 데코레이터의 경우에도 거의 동일합니다.

여기 css로만 얻을 수있는 것을보세요 : http://robertbasic.com/blog/styling-the-default-zend_form-layout/ 그리고 그것은 제한이 아닙니다.

2) html 마크 업의 의미 또한 손실됩니다. 적어도 오늘날은 의미가 없습니다.

또한, DdDt는 오류보고를 위해 Zend_Form 자체에서 사용되지 않습니다.이 필요를 위해 'Errors'라는 또 다른 표준 데코레이터가 있습니다.





zend-form