У меня проблемы с удалением набора декораторов по умолчанию с помощью Zend_Form.
Я пытаюсь расширить Zend_Form для реализации другого стиля декоратора.
class CRM_Form extends Zend_Form
{
public function init()
{
$this->setDisableLoadDefaultDecorators(true);
$this->addDecorator('FormElements')
->addDecorator('Form');
$this->setElementDecorators(array(
'ViewHelper',
'Label',
'Errors',
new Zend_Form_Decorator_HtmlTag(array('tag' => 'p'))
));
}
}
Когда я пытаюсь использовать этот класс следующим образом:
$form = new CRM_Form();
$form->setAction('/')->setMethod('post');
$id = $form->createElement('text','id')->setLabel('ID:');
$form->addElement($id);
Используются старые декораторы (список определений), а не стиль моего абзаца.
Если я добавляю addElement () в метод init () класса CRM_Form, они используют стиль, который я установил.
Как заставить все элементы, созданные с использованием этого класса, использовать мой стиль по умолчанию?