Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-03-2011 23:39:13

settoken
Nouveau membre
Date d'inscription: 24-02-2011
Messages: 3

Zend_Form Supprimer les tags par défaut

Pour ceux qui comme moi souhaitent utiliser Zend_Form sans utiliser les decorateurs et en gardant un code HTML propre voici comment faire.

Exemple un formulaire de connexion :


Code:

<?php

class My_Form_Login extends Zend_Form
{
    public function init()
    {
        $this->setMethod('post')
               ->setName('Login')


               // On désactive le chargement des décorateurs généraux par défaut, puis on les recharge
               // à l'exception de celui-ci : ('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form'))
               // voir la méthode 'loadDefaultDecorators' dans Zend/form.php

               ->setDisableLoadDefaultDecorators(true)
               ->addDecorator('FormElements')
               ->addDecorator('Form');


        $options = array(
            'title' => 'Nom',
            'name' => 'Name'
        );
        $name = new Zend_Form_Element_Text($options);
        $name->addFilter('StripTags');
        $name->addFilter('StringTrim');
        $name->setRequired(true);



        $options = array(
            'title' => 'Mot de passe',
            'name' => 'Pass'
        );
        $pass = new Zend_Form_Element_Password($options);
        $pass->addFilter('StripTags');
        $pass->addFilter('StringTrim');
        $pass->setRequired(true);



        $options = array(
            'id' => 'Submit',
            'name' => 'Connexion'
        );
        $submit = new Zend_Form_Element_Submit($options);

        $this->addElements(array($name, $pass, $submit));



        //On désactive les décorateurs d'élements type td,dd, etc...
        foreach($this->getElements() as $element) 
        {
            $element->removeDecorator('HtmlTag');
            $element->removeDecorator('DtDdWrapper');
            $element->removeDecorator('Label');
        }
     }
}

Les commentaires sont explicites je pense.

Le résultat est un formulaire nickel, débarassé des décorateurs et facilement customisable via CSS comme font les gens normaux.
Et voilà.

Hors ligne

 

#2 03-03-2011 10:30:48

Ithier
Membre
Date d'inscription: 05-01-2010
Messages: 85

Re: Zend_Form Supprimer les tags par défaut

Je ne sais pas si l'expression "code HTML propre" est celle qui convient tout à fait.

Le html généré par ZF est tout à fait propre, il passe sans problème les tests du W3C, et on peut très bien le customisé avec une CSS.

Par contre l'avantage des Dt et Dd générés par ZF c'est qu'ils permettent d'associer "informatiquement" et non pas seulement "graphiquement", l'intitulé et son input et de donner ainsi une structure logique à ta page.
Le label permet quant à lui d'améliorer l'accessibilité car il est associé à l'input (avec son attribut for).


Bonne journée

Hors ligne

 

#3 03-03-2011 13:50:10

settoken
Nouveau membre
Date d'inscription: 24-02-2011
Messages: 3

Re: Zend_Form Supprimer les tags par défaut

Il n'est pas difficile de rajouter après ce dont tu as besoin, le principe ici c'est d'avoir le choix de s'en passer.
Tout le monde n'apprécie pas que zend_form agrémente les formulaires de ces listes de définition.

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