Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-06-2009 20:50:12

squall6969
Membre
Date d'inscription: 14-09-2008
Messages: 90

[Résolu] [Zend_Form] Les décorateurs (ne) sont (pas) bugué ...

Bonjour,

C'est après avoir résolu un problème que j'en découvre un autre.
J'ai enfin réussi à décorer un élément comme je le souhaitais, seulement si j'applique les décorateurs à plusieurs élément, tous les éléments sont converti dans le même type que le premier élément du formulaire.

Code:

$decorators = array( 
        
        new Zend_Form_Decorator_ViewHelper(),
        new Rem_Form_Decorator_DivTag(),
        new Zend_Form_Decorator_Label(),
        new Rem_Form_Decorator_LiTag(),
        );

$element = new Zend_Form_Element_Text('yahoo');
        $element->setAttribs(array('class'=>'field text'));
        $element->setLabel('Testy');
        $element->setRequired();
        $element->setDecorators($decorators );
        $form->addElement($element);     

        $element = new Zend_Form_Element_Textarea('yahoo6565');
        $element->setAttribs(array('class'=>'field text'));
        $element->setLabel('other');
        $element->setRequired();
        $element->setDecorators($decorators );
        $form->addElement($element);

Ce code me rend 2 input text!!!!!!!!!
J'ai vraiment l'impression que leur formulaire est bugué.

En passant par setElementDecorators($decorators ) j'ai le même résultat.
La seule solution est de réinstancier à nouveaux les décorateurs afin de fournir des instances dfférentes à chaque élements... Quelle dommage d'autant plus que tous mes élements sont décorés sur le même shéma, n'y a t'il pas une solution ? problème connu ?


Un grand merci d'avance

Dernière modification par Mr.MoOx (17-06-2009 17:32:22)

Hors ligne

 

#2 16-06-2009 21:53:14

squall6969
Membre
Date d'inscription: 14-09-2008
Messages: 90

Re: [Résolu] [Zend_Form] Les décorateurs (ne) sont (pas) bugué ...

Je confirme, le module Form est un peu buggué surtout au niveau des décorateurs.

En effet pour ne pas qu'il y est de bug lors de l'attribution d'un même ensemble de décorateurs à plusieurs éléments il faut obligatoirement passé par le raccourci du nom du décorateur plutôt que d'instancier les décorateurs.

Dans l'exemple ci-dessus j'ai essayé de remplacer ma ligne instanciant le Viewhelper par la simple string 'ViewHelper', et magike ! plusq de bug ...

Alors si vous voulez créer des décorateurs perso, n'oubliez pas d'ajouter vos chemins
$form->addPrefixPath('My_Form_Decorator', 'My/Form/Decorator/', Zend_Form::DECORATOR);


J'espère que ce post en aidera certains, car je n'ais trouvé aucun post relatant ce bug pourtant ENORME !


Je reste ouvert à toute question

Hors ligne

 

#3 16-06-2009 22:06:38

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: [Résolu] [Zend_Form] Les décorateurs (ne) sont (pas) bugué ...

Et si ton deuxième element tu l'appel  $element2  ?


Société : Direct Info Service

Hors ligne

 

#4 17-06-2009 00:16:52

squall6969
Membre
Date d'inscription: 14-09-2008
Messages: 90

Re: [Résolu] [Zend_Form] Les décorateurs (ne) sont (pas) bugué ...

Euh, tu est sérieux là ?

Je crois que sa serait revenir à la base du fonctionnement php ...

Le problème se situe au niveau des instances des décorateurs.

Mais du coups c'est pas grave je passe par la méthode énoncé.
Peut être le signaler à zend

++

Hors ligne

 

#5 17-06-2009 11:00:14

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] [Zend_Form] Les décorateurs (ne) sont (pas) bugué ...

Ceci n'est pas un bug. Ca provient d'un mauvaise utilisation des decorateurs.
Lorsque Zend_Form_Decorator_ViewHelper est instancié, il faut ensuite utilisé la méthode setHelper($helper) dessus. Ce que tu ne fait pas. Et ce mécanisme est fait automatiquement par Zend_Form lorsque tu lui passe les décorateurs sous forme de chaînes de caractères.

Hors ligne

 

#6 17-06-2009 14:03:28

squall6969
Membre
Date d'inscription: 14-09-2008
Messages: 90

Re: [Résolu] [Zend_Form] Les décorateurs (ne) sont (pas) bugué ...

Autant pour moi Mr Moox !
Il est donc plus justicieux de se servir de la fonctionnalité de Zend_Form pour faire le travail.

Merci pour tout.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages