/** * 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'); } }
/** * Retorna as classes CSS de Decorator de um Zend_Form_Element quando fornecido * OU do proprio elemento por padrão * * @param Zend_Form_Element $element * @return array * @author Jhonatan Morais <*****@*****.**> */ protected function _getClassNamesFromDecorator($decoratorName, Zend_Form_Element $element = null) { if (null !== $element) { return explode(' ', $element->getDecorator($decoratorName)->getOption('class')); } //Jdebug($decoratorName); return explode(' ', $this->getDecorator($decoratorName)->getOption('class')); }
/** * Retorna um array com as classes CSS utilizadas em um Zend_Form_Element * @param Zend_Form_Element $element elemento a ser consultado * @return array Retorna um array com cada classe encontrada * @author Jhonatan Morais <*****@*****.**> */ public function getCssClass(Zend_Form_Element $element, $fromDecorator = null) { if (is_null($fromDecorator)) { return explode(' ', $element->getAttrib('class')); } return explode(' ', $element->getDecorator($fromDecorator)->getOption('class')); }
/** * Set an error class into element HtmlTag decorator * * @param Zend_Form_Element $element Element to 'decorate' for the error. * @param string $styleClass CSS class name. * * @return void */ protected function setClassToAnElement(Zend_Form_Element $element, $styleClass) { $htmlTagDecorator = $element->getDecorator('HtmlTag'); if (!empty($htmlTagDecorator)) { $class = $htmlTagDecorator->getOption('class'); $htmlTagDecorator->setOption('class', $class . ' ' . $styleClass); } }