Bir Dekoratör bir Zend_Form_Element bir özniteliği değiştirmek nasıl

2 Cevap php

Daha önce eklenen bir Dekoratör bir Zend_Form_Element bir html özniteliği değiştirmek mümkün mü?

Ben RichTextArea adında bir dekoratör var diyelim. Ben bir Zend_Form_Element_Textarea eklediğinizde, ben dekoratör textarea için "zengin" sınıfını eklemek istiyorum.

Nihai çıktı bu gibi görünmelidir:

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

2 Cevap

Bu mümkündür, ancak sözdizimi bina biçimi nasıl biraz bağlıdır. En kolay yolu eklemek gibi elemanının kendisi üzerinde bunu yapmak için:

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

ya dekoratörler kitle atanmışsa, örn:

$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');

Eğer TinyMCE ya da benzeri bir zengin metin editörü kullanıyorsanız, başka bir seçenek Zend_Form_Element_Textarea uzanır ve her zaman için sınıf eklemek özel bir form öğesi oluşturmak için olabilir.

Bu herhangi bir HTML-Özellik ile eklemek mümkün

Zend_Form_Element-Instance->setAttribute($key, $value);

Ama aynı zamanda böyle bir özelliği olarak Öznitelikleri erişebilirsiniz

Zend_Form_Element-Instance->key = $value;

Daha fazla bilgi için Zend-Belgelerde bu Bölüm okuyun: http://framework.zend.com/manual/1.12/en/zend.form.elements.html#zend.form.elements.metadata