2010-07-18 7 views
0

Comment supprimer des étiquettes de décorateurs + HtmlTag avec la fonction loadDefaultDecorators?Zend_Form - loadDefaultDecorators :: Comment supprimer l'étiquette decorator + HtmlTag avec la fonction loadDefaultDecorators?

Ma solution - s'il vous plaît me dire si ma mise en œuvre fonctionne bien ou besoin de modifications

class MyForm extend Zend_Form{ 

    function init(){ 
    //create form elements 
    ...................................... 
    } 

public function loadDefaultDecorators() { 
    if ($this->loadDefaultDecoratorsIsDisabled()) { 
    return $this; 
    } 
    foreach($this->getElements()as $elem){ 
    $elem->removeDecorator('Label') 
     ->removeDecorator('HtmlTag'); 
     } 
    return $this; 
    } 
} 

Merci

Répondre

2

Vous aviez overriden méthode loadDefaultDecorators pour la classe MyForm, mais il fallait le faire pour chaque élément classe. Dans ce cas, vous ne verrez aucun code HTML, car vous n'avez pas fourni de décorateurs spécifiques au formulaire, comme Form, FormElements, etc. Tous ces décorateurs que j'ai décrits ci-dessus sont définis dans la méthode loadDefaultDecorators de la classe Zend_Form. Essayez d'ajouter la ligne suivante au début de votre méthode loadDefaultDecorators:

parent::loadDefaultDecorators(); 

Cette appellera méthode de la classe correspond Zend_Form.