/** * Static function that adds all the elements in 1 wrapping element instead of dt, dd structure * * @param $elm * @return void */ public static function setElementDecorator(Zend_Form_Element $elm) { $elm->addPrefixPath('Glitch_Form_Decorator', 'Glitch/Form/Decorator/', 'decorator'); $labelSettings = array(); if ($elm->getDecorator('Label')) { $labelSettings = $elm->getDecorator('Label')->getOptions(); unset($labelSettings['tag']); //Tag should never be needed when you call this method } $class = 'wrapper'; if ($elm->getAttrib('wrapperClass')) { $class .= ' ' . $elm->getAttrib('wrapperClass'); $elm->setAttrib('wrapperClass', null); } if ($elm instanceof Zend_Form_Element_Hidden) { $class .= ' hidden'; } $elm->clearDecorators()->addDecorator('Label', $labelSettings)->addDecorator('ViewHelper')->addDecorator('Description', array('escape' => false))->addDecorator('Errors')->addDecorator('Wrapper', array('tag' => 'div', 'id' => $elm->getName() . '-wrapper', 'class' => $class)); if ($elm instanceof Zend_Form_Element_Submit) { $elm->removeDecorator('Label'); } }