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 :

Zend form decorateur captcha tableau [ZF 1.10]


Sujet :

Zend_Form PHP

  1. #1
    Membre très actif
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Par défaut Zend form decorateur captcha tableau
    Bonjour,

    je cherche à faire un décorateur pour mettre mon captcha dans un tableau sur 3 colonnes :
    - colonne n°1 => le label et en dessous l'image
    - colonne n°2 => description et en dessous la zone de saisie
    - colonne n°3 => l'éventuel message d'erreur

    du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <tr>
    <td><label>Captcha</label><br /><img ...></td>
    <td><p class="description">Merci de saisir ...</p><input /></td>
    <td><ul><li>captcha is wrong</li></ul></td>
    </tr>
    Pourriez-vous m'aidez svp à composer mon décorateur ? D'avance merci.

  2. #2
    Membre très actif
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Par défaut
    J'ai trouvé comment faire. Je suis passé par décorateur personnalisé.

    J'ai créé une classe héritant de Zend_Form_Decorator_Captcha.
    Le captcha image est composé de 6 éléments:
    - le label
    - l'image
    - la zone de saisie
    - le code caché
    - la description
    - le message d'erreur

    Le label, la description et le message d'erreur s'obtienne comme pour les input classique. Il y a un excellent exemple dans le chapitre Décorateurs personnalisés:
    http://framework.zend.com/manual/fr/...ecorators.html

    j'ai compléter la méthode render comme ceci
    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
     
    public function render($content)
        {
            $element = $this->getElement();
            if (!$element instanceof Zend_Form_Element) return $content;
     
            if (null === $element->getView()) return $content;
     
    		$name = $element->getFullyQualifiedName();
     
    		$view = $element->getView();
    		$hiddenName = $name . '[id]';
            $textName = $name . '[input]';
     
            $separator = $this->getSeparator();
            $placement = $this->getPlacement();
            $label     = $this->buildLabel();        
            $errors    = $this->buildErrors();
            $desc      = $this->buildDescription();
     
           $hidden = $view->formHidden($hiddenName, 
                                            $element->getValue(), 
                                            $element->getAttribs()
                                            );
     
           $input = $view->formText($textName, '', $element->getAttribs());
           $captcha = $element->getCaptcha();
           $markup = $captcha->render($view, $element);
     
           //Html de sortie		
           $output = "<tr><td>$label<br /><span class='captcha'>$markup</span>               $hidden</td><td>";
    		if(!empty($desc)) $output .="$desc<br />";
    		$output .= "$input</td><td>$errors</td></tr>";
     
     
            switch ($placement) {
                case (self::PREPEND):
                    return $output . $separator;
                case (self::APPEND):
                default:
                    return $separator . $output;
            }
        }
    Le reste du code est identique à ce qui est présenté. Voilà si ça peut aider quelqu'un ^^.

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

Discussions similaires

  1. [ZF 1.11] Zend Form Element Captcha
    Par Le_Unknown dans le forum Zend_Form
    Réponses: 2
    Dernier message: 23/06/2011, 16h31
  2. [ZF 1.9] Zend Form et tableau d'éléments
    Par s.n.a.f.u dans le forum Zend_Form
    Réponses: 6
    Dernier message: 02/10/2010, 22h22
  3. Mise en forme en tableau d'un Zend Form
    Par ZIED dans le forum Zend_Form
    Réponses: 1
    Dernier message: 20/06/2008, 23h29
  4. [ struts-layout ]Mise en forme d'un tableau
    Par sandrinec dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/06/2006, 10h06
  5. Mise à forme d'un tableau croisé dynamique
    Par Oluha dans le forum Access
    Réponses: 16
    Dernier message: 20/02/2006, 09h14

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