J'ai une classe qui étend Zend_Form comme celui-ci (simplifié):Zend Framework - Zend_Form Décorateur Problème
class Core_Form extends Zend_Form
{
protected static $_elementDecorators = array(
'ViewHelper',
'Errors',
array('Label'),
array('HtmlTag', array('tag' => 'li')),
);
public function loadDefaultDecorators()
{
$this->setElementDecorators(self::$_elementDecorators);
}
}
J'utilise ensuite cette classe pour créer toutes mes formes:
class ExampleForm extends Core_Form
{
public function init()
{
// Example Field
$example = new Zend_Form_Element_Hidden('example');
$this->addElement($example);
}
}
Dans un de mes vues, j'ai besoin d'afficher seulement ce seul champ (sans rien d'autre généré par Zend_Form). Donc, à mon avis, j'ai ceci:
<?php echo $this->exampleForm->example; ?>
Cela fonctionne bien, sauf qu'il génère le champ comme ceci:
<li><input type="hidden" name="example" value=""></li>
Ceci est évidemment parce que je mets les décorateurs d'éléments pour inclure HtmlTag: tag = > 'li'.
Ma question est: Comment puis-je désactiver tous les décorateurs pour cet élément. Je n'ai pas besoin de décorateurs pour les éléments d'entrée cachés.
Merci beaucoup! Je ne sais pas pourquoi je n'ai pas pensé à surcharger la fonction loadDefaultDecorators(). – leek