Как изменить атрибут Zend_Form_Element в декораторе - PullRequest
0 голосов
/ 28 мая 2009

Можно ли изменить атрибут html элемента Zend_Form_Element в ранее добавленном декораторе?

Допустим, у меня есть декоратор по имени RichTextArea. Когда я добавляю его в Zend_Form_Element_Textarea, я хочу, чтобы декоратор добавил класс «rich» к текстовой области.

Окончательный результат должен выглядеть следующим образом:

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

Ответы [ 2 ]

4 голосов
/ 28 мая 2009

Возможно, но синтаксис немного зависит от того, как вы строите форму. Проще всего сделать это на самом элементе при добавлении:

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

или если вы присвоили декораторам массовые значения, например ::100100

$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, и всегда добавляющего в него свой класс.

1 голос
/ 05 октября 2012

Можно добавить любой HTML-атрибут с

// @var Zend_Form_Element $element
$element->setAttribute($key, $value);

Но вы также можете получить доступ к атрибутам как свойство, подобное

$element->key = $value;

Для получения дополнительной информации прочитайте этот раздел в Zend-документации: http://framework.zend.com/manual/1.12/en/zend.form.elements.html#zend.form.elements.metadata

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...