sept
12
2011

Initiation aux ViewScripts de Zend_Form

Pour la reprise des tutoriels, nous allons voir comment créer un formulaire d’authentification via le système de ViewScripts.

Les ViewScripts, c’est quoi? Et bien, c’est une vue dédiée au formulaire, c’est elle qui va permettre de faire la partie design de votre formulaire sans devoir passer par les décorateurs.

Nous allons donc reprendre le formulaire d’identification de notre turoriel afin de lui faire utiliser les viewScripts :

Pour se faire, reprenez la classe du formulaire suivante (la complète du tutoriel sur l’identification) :

 PHP |  copy code |? 
01
class Admin_Forms_Identification extends Zend_Form 
02
{ 
03
    public function init()
04
    {
05
        $this->setMethod('post')
06
             ->setName('identification'); 
07
 
08
 
09
        $login = new Zend_Form_Element_Text('login');
10
        $login<!--DVFMTSC-->->setRequired(TRUE)
11
              ->addFilters(array('StringTrim', 'StripTags'))
12
              ->addValidators(array( array('validator' => 'StringLength', 'options' => array(0, 20))))
13
              ->getDecorator('label')->setOption('tag', null);
14
 
15
        $passwd = new Zend_Form_Element_Password('password');
16
        $passwd&minus;>setRequired(TRUE)
17
               ->addFilters(array('StringTrim', 'StripTags'))
18
               ->addValidators(array( array('validator' => 'StringLength', 'options' => array(0, 20))))
19
               ->getDecorator('label')->setOption('tag', null);
20
 
21
        $submit = new Zend_Form_Element_Submit('submit');
22
        $submit->setIgnore(true);
23
 
24
        $this->addElement($login);
25
        $this->addElement($passwd);
26
        $this->addElement($submit);
27
 
28
        $this->setDecorators(array(
29
            array('ViewScript', array('viewScript' => 'index/forms/identification.phtml'))
30
        ));
31
    }
32
}

Ici, la ligne qui nous intéresse est la suivante :

 PHP |  copy code |? 
1
$this->setDecorators(array(
2
    array('ViewScript', array('viewScript' => 'index/forms/identification.phtml'))
3
));

On indique qu’on met un décorateur global à notre formulaire et il se situe dans /application/modules/admin/views/index/forms/. Le décorater en question contient la vue propre à notre formulaire :

 HTML |  copy code |? 
01
<form action="<?php echo $this->escape($this->element->getAction()); ?>"
02
      method="<?php echo $this->escape($this->element->getMethod()); ?>"
03
      class="formident">
04
 
05
      <p>
06
       Vous devez vous identifier pour accéder au backoffice.
07
      </p>
08
 
09
      <div>
10
       <span class="labelform"><label>Login</label></span>
11
       <span><?php echo $this->element->login->renderViewHelper(); ?></span>
12
      </div>
13
      <div>
14
       <span class="labelform"><label>Mot de Passe :</label></span>
15
       <span><?php echo $this->element->password->renderViewHelper(); ?></span>
16
      </div>
17
 
18
      <?php echo $this->element->submit->renderViewHelper(); ?>
19
 
20
</form>

Comme vous le voyez, on habille notre formulaire comme l’on veut. Afin d’appeler l’élément que l’on souhaite sans utiliser les décorateurs par défaut, nous utilisons la fonction renderViewHelper()

Maintenant, il ne vous reste plus qu’à utiliser un peu de CSS et vous pouvez obtenir le formulaire dont vous rêvez.

 

Articles Connexes

A propos de l'Auteur: Benjamin Besse

Je suis Analyste Développeur chez Goomeo et je suis passioné par tout ce qui touche aux technologies du Web. J'ai commencé par apprendre l'utilisation du Framework Zend et j'ai continué naturellement via Android. Le tout seulement avec les bases acquises en DUT et Licence professionnelle Informatique.

Laisser un commentaire

Mots-Clefs