W projekcie mam kilka formularzy zrobionych mniej więcej tak:
class Moja_Forma extends Moj_Decorator { protected function _formA() { $form = new Moj_DecoratorSub(); $element = new Zend_Form_Element... $form->addElements($element1, $element2); return $form; } public function init() { $this->addSubForm('formA', $this->_formA()); $this->addSubForm('formB', $this->_formB()); } }
Z powodu layoutu muszę wyświetlać formy w specyficzny sposób:
<?php echo $this->form->getSubForm('formA'); ?> ... ... .... <?php echo $this->form->getSubForm('formB'); ?>
Przy wyświetlaniu jednak ignoruje moje dekoratory - wyświetla <dl><dt>.
Widzicie może gdzie popełniłem błąd ?
Przy normalnym pokazywaniu formularzy
Wszystko jest ok (dla formularzy bez SubForm)
Dekoratory:
class Moj_Decorator extends ZendX_JQuery_Form { /** * Load the default decorators * * @return void */ public function loadDefaultDecorators() { $this->clearDecorators(); $this->addDecorator('FormElements') ->addDecorator('Form'); )); } } class Moj_DecoratorSub extends Moj_Decorator { /** * Whether or not form elements are members of an array * @var bool */ protected $_isArray = true; /** * Load the default decorators * * @return void */ public function loadDefaultDecorators() { $this->clearDecorators(); $this->addDecorator('FormElements') ->addDecorator('Fieldset'); )); } }