IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

Modifier le rendu des "Errors" pour <table>


Sujet :

Zend_Form PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut Modifier le rendu des "Errors" pour <table>
    Bonjour.

    J'utilise donc Zend_Form et j'ai déjà paramétré une bonne partie des decorators pour intégrer mon formulaire dans un tableau.

    Seulement... rien à faire je ne trouve pas comment le faire pour les messages d'erreurs qui se placent toujours dans une balise <ul>!

    Ce que je souhaite c'est simplement avoir le tableau suivant:

    |Mon Label: | [==========] | Mon message d'erreur

    Donc en gros placer autour de mon message d'erreur la balise <td>.
    Mais voilà je n'y parviens pas du tout... peut-être pourriez-vous m'aider?

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        private $elementDecorators = array(
            'ViewHelper',
            'Errors',
            //array(array('data' => 'Errors'), array('tag' => 'td', 'class' => 'testErreur')),
            array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')),
            array('Label', array('tag' => 'td')),
            array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
        );
    Comme vous le voyez, j'ai déjà essayé quelques bricoles pour m'en sortir mais honnêtement, ne comprenant pas bien comment fonctionne les décorator c'est tout de suite plus complexe ^^

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 99
    Par défaut
    Hello,

    je débute aussi mes essais sur Zend_form mais je vais essayer de résoudre ce problème avec toi.

    Quand on édite la page html avec les erreurs, la classe correspondante est "errors". C'est celle-ci qu'il faut "décorer".


    Ca doit donc donner qqchose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $monobjet = $this->getElement ('monobjet')
                            ->setDecorators(array(
                               array('ViewHelper'),
                               array('Errors'),
                               array('Label', array(
                               'tag' => 'td')),
                      ));
    Essaye ca et dis mois ce que ca donne !


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Alors en fait j'ai trouvé une solution à mon problème et la voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
        private $elementDecorators = array(
            'ViewHelper',
            'Errors',
            array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')),
            array('Label', array('tag' => 'td')),
            array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'valign' => 'top')),
        );
        private $buttonDecorators = array(
            'ViewHelper',
            array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')),
            array(array('label' => 'HtmlTag'), array('tag' => 'td', 'placement' => 'prepend')),
            array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
        );
     
    	public function __construct($options = null) {
    		parent::__construct($options);
     
    		$login = new Zend_Form_Element_Text('login_auth');
    		$login->addValidator('alnum');
    		$login->setRequired(true);
    		$login->addFilter('StringTrim');
    		$login->setLabel('index_index_login');
     
    		$password = new Zend_Form_Element_Password('password_auth');
    		$password->setRequired(true);
    		$password->addFilter('StringTrim');
    		$password->addValidator('NotEmpty');
    		$password->setLabel('index_index_password');
     
    		$submit = new Zend_Form_Element_Submit('submit');
    		$submit->setLabel('general_submit');
    		$this->addElement($login);
    		$this->addElement($password);
    		$this->addElement($submit);
     
    		// On place les décorators
    		$login->setDecorators($this->elementDecorators);
    		$password->setDecorators($this->elementDecorators);
    		$submit->setDecorators($this->buttonDecorators);
     
    	}
    	public function loadDefaultDecorators() {
            $this->setDecorators(array(
                'FormElements',
                array('HtmlTag', array('tag' => 'table')),
                'Form',
            ));
        }
     
    }
    Ensuite pour afficher le message d'erreur comme je le souhaite, j'utilise CSS

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 99
    Par défaut
    C'est cool que tu ai trouvé !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Oui heureusement

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo