protected function _recursivelyPrepareForm(Form\Form $form) { $belongsTo = $form instanceof Form\Form ? $form->getElementsBelongTo() : null; $elementContent = ''; $separator = $this->getSeparator(); $translator = $form->getTranslator(); $view = $form->getView(); foreach ($form as $item) { $item->setView($view)->setTranslator($translator); if ($item instanceof Form\Element) { $item->setBelongsTo($belongsTo); } elseif ($item instanceof Form\Form) { if (!empty($belongsTo)) { if ($item->isArray()) { $name = $this->mergeBelongsTo($belongsTo, $item->getElementsBelongTo()); $item->setElementsBelongTo($name, true); } else { $item->setElementsBelongTo($belongsTo, true); } } $this->_recursivelyPrepareForm($item); } elseif ($item instanceof Form\DisplayGroup) { if (!empty($belongsTo)) { foreach ($item as $element) { $element->setBelongsTo($belongsTo); } } } } }
/** * Dojo-enable a form instance * * @param \Zend\Form\Form $form * @return void */ public static function enableForm(\Zend\Form\Form $form) { $form->addPrefixPath('Zend\\Dojo\\Form\\Decorator', 'Zend/Dojo/Form/Decorator', 'decorator')->addPrefixPath('Zend\\Dojo\\Form\\Element', 'Zend/Dojo/Form/Element', 'element')->addElementPrefixPath('Zend\\Dojo\\Form\\Decorator', 'Zend/Dojo/Form/Decorator', 'decorator')->addDisplayGroupPrefixPath('Zend\\Dojo\\Form\\Decorator', 'Zend/Dojo/Form/Decorator')->setDefaultDisplayGroupClass('Zend\\Dojo\\Form\\DisplayGroup'); foreach ($form->getSubForms() as $subForm) { self::enableForm($subForm); } if (null !== ($view = $form->getView())) { self::enableView($view); } }