/** * 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); } }
/** * Add a form group/subform * * @param Form $form * @param string $name * @param int $order * @return Form */ public function addSubForm(Form $form, $name, $order = null) { $name = (string) $name; foreach ($this->_loaders as $type => $loader) { $loaderPaths = $loader->getPaths(); foreach ($loaderPaths as $prefix => $paths) { foreach ($paths as $path) { $form->addPrefixPath($prefix, $path, $type); } } } if (!empty($this->_elementPrefixPaths)) { foreach ($this->_elementPrefixPaths as $spec) { list($prefix, $path, $type) = array_values($spec); $form->addElementPrefixPath($prefix, $path, $type); } } if (!empty($this->_displayGroupPrefixPaths)) { foreach ($this->_displayGroupPrefixPaths as $spec) { list($prefix, $path) = array_values($spec); $form->addDisplayGroupPrefixPath($prefix, $path); } } if (null !== $order) { $form->setOrder($order); } if (($oldName = $form->getName()) && $oldName !== $name && $oldName === $form->getElementsBelongTo()) { $form->setElementsBelongTo($name); } $form->setName($name); $this->_subForms[$name] = $form; $this->_order[$name] = $order; $this->_orderUpdated = true; return $this; }