Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-10-2008 18:05:04

jon301
Nouveau membre
Date d'inscription: 12-10-2008
Messages: 4

[RESOLU] Zend_Form et les décorateurs : label du bouton submit

Bonjour,

Je suis en train de développer un formulaire avec Zend_Form par le biais d'un fichier de config INI.
Tout allait bien jusqu'au moment où j'ai eu envie d'ajouter un astérisque devant les labels des champs obligatoires...
Pour cela, il fallait utiliser les décorateurs.

Voici donc ce que j'ai rajouté dans mon fichier de config :

("register" est le nom de mon formulaire)

Code:

; Form Decorators
register.decorators.formElements.decorator = "FormElements"
register.decorators.form.decorator = "Form"

; Global Element Decorators
register.elementDecorators.decorator = "ViewHelper"
register.elementDecorators.error.decorator = "Errors"
register.elementDecorators.label.decorator = "Label"
register.elementDecorators.label.options.requiredPrefix = "* "
register.elementDecorators.formElements.decorator = "HtmlTag"
register.elementDecorators.formElements.options.tag = "div"

; username element
register.elements.username.type = "text"
register.elements.username.options.class = "text"
register.elements.username.options.label = "Login"
register.elements.username.options.required = true

; password element
register.elements.password.type = "password"
register.elements.password.options.class = "text"
register.elements.password.options.label = "Password"
register.elements.username.options.required = true

; submit element
register.elements.submit.type = "submit"
register.elements.submit.options.class = "submit"
register.elements.submit.options.label = "Submit"

Ceci me permet de générer un formulaire dont le code html est le suivant :

Code:

<form method="post" action="/register/submit" enctype="application/x-www-form-urlencoded">
    <div>
        <label class="required" for="username">* Login</label>
        <input type="text" class="text" value="" id="username" name="username"/>
    </div>
    <div>
        <label class="required" for="password">* Password</label>
        <input type="password" class="text" value="" id="password" name="password"/>
    </div>
    <div>
        <label class="optional" for="submit">Submit</label>
        <input type="submit" class="submit" value="Submit" id="submit" name="submit"/>
    </div>
</form>

Problème :
Comme vous pouvez le voir, le bouton Submit possède un label que je voudrai supprimer.

J'ai tenté d'affecter un décorateur non pas au formulaire mais directement à l'élément submit, aucun résultat sad

J'ai trouvé un post traitant du meme sujet (http://www.z-f.fr/forum/viewtopic.php?id=894) mais je n'arrive pas à le reproduire sous forme d'un fichier de config.

Jdois avouer que j'ai un peu de mal avec cette écriture sad

Help smile

Merci d'avance !


Jon

Dernière modification par jon301 (27-10-2008 21:40:48)

Hors ligne

 

#2 27-10-2008 10:47:18

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

Re: [RESOLU] Zend_Form et les décorateurs : label du bouton submit

Code:

register.elements.submit.decorators.bouton = ViewHelper

Ta essayé un truc dans le genre?

Hors ligne

 

#3 27-10-2008 21:40:21

jon301
Nouveau membre
Date d'inscription: 12-10-2008
Messages: 4

Re: [RESOLU] Zend_Form et les décorateurs : label du bouton submit

Problème résolu.

En fait quand on utilise l'attribut elementDecorators d'un formulaire, les champs sont traités de manière égale quelque soit leur type (text, submit, etc.), d'où le fait que même le bouton submit se voit attribuer un label.

Il n'est ensuite plus possible de surcharger le decorateur d'un element pris individuellement, et ça c'est dommage !

La solution (et pas des plus élégantes) est donc de ne pas utiliser l'attribut générique elementDecorators, mais d'affecter à chaque element son propre decorator :
register.elements.username.decorators....
register.elements.password.decorators....
register.elements.submit.decorators....

Voila, par contre ne vous étonnez pas si votre fichier de config se voit rallongé d'une vingtaine de lignes... hmm

En espérant avoir aidé wink


Jon

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