2009-05-28 4 views
0

이전에 추가 된 Decorator에서 Zend_Form_Element의 html 속성을 변경할 수 있습니까?Decorator에서 Zend_Form_Element의 속성을 수정하는 방법

RichTextArea라는 데코레이터가 있다고 가정 해 보겠습니다. Zend_Form_Element_Textarea에 추가하면 데코레이터가 텍스트 영역에 "rich"클래스를 추가하도록합니다.

최종 출력은 다음과 같아야합니다 : 그것은 가능하지만 구문이 양식을 구축하는 방법에 약간 의존

<textarea name="content" id="content" class="rich" />

답변

4

. 당신이 그것을 추가 할 때 가장 쉬운 방법은 요소 자체에 그것을 할 수 있습니다 :

$element = new Zend_Form_Element_Text('something'); 
$element->class = 'rich'; 
$form->addElement($element); 

을하거나 장식, 예를 대량으로 할당하는 경우 :

$element = new Zend_Form_Element_Text('something'); 
$element->setDecorators(array(
    'Errors', 
    'Label', 
    array(array('row' => 'HtmlTag'), array('tag' => 'div')) 
)); 

[...] 

$decorator = $element->getDecorator('row'); 
$decorator->setOption('class', 'rich'); 

당신이 TinyMCE에 같은 서식있는 텍스트 편집기를 사용하는 경우 Zend_Form_Element_Textarea를 확장 한 사용자 정의 양식 요소를 생성하고 항상 클래스를 추가 할 수도 있습니다.

+0

당신이 말한대로 유일한 실제 해결책은 Zend \ _Form \ _Element \ _Textarea를 확장하는 것입니다 ... 나는 그것을 할 수있는 다른 방법을 찾을 수 없기 때문에 당신의 솔루션을 받아 들일 것입니다. – Sylvain