Bonjour à vous
Je test une classe de "validation de saisie" perso et j'ai un petit souci.
Le contrôle du titre du disque (Il doit etre = 'TOTO') marche mais
en cas d'echec aucun message apparait dans le formulaire .... Il y a juste un POINT
Est ce que ce n'est pas un conflit avec addValidator (..qui eux marchent correctement) ?
Merci encore pour votre aide

mes classes :

classe validate perso:
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
<?php
require_once 'Zend/Validate/Abstract.php';
 
class Validate_NameMatch extends Zend_Validate_Abstract
{
    const NAME_MISMATCH = 'nom titre accepté';
 
     protected $_compare;
 
    public function __construct($compare)
    {
        $this->_compare = $compare;
    }
 
    protected $_messageTemplates = array(
        self::NAME_MISMATCH => 'Le nom du disque n est pas accepté'
    );
 
    public function isValid($value)
    {
        $this->_setValue((string) $value);
        if ($value !== $this->_compare)  {
           $this->_error(self::NAME_MISMATCH);
          return false;
       }
        return true;
    }
 
}
?>
classe formulaire :
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
<?PHP
class Application_Form_Album extends Zend_Form
{
    public function init()
    {
        $this->setName('album');
 
        $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');
 
        $artiste = new Zend_Form_Element_Text("artiste", array('size' => 25));
        $artiste->setLabel('Artiste')
                ->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim')
                ->addValidator('NotEmpty');
 
        $titre = new Zend_Form_Element_Text("titre", array('size' => 25));
        $titre->setLabel('Titre')
              ->setRequired(true)
              ->addFilter('StripTags')
              ->addFilter('StringTrim')
              ->addValidator('NotEmpty');
 
        $envoyer = new Zend_Form_Element_Submit('envoyer');
        $envoyer->setAttrib('id', 'boutonenvoyer');
 
        $this->addElements(array($id, $artiste, $titre, $envoyer));
    }
// Redefinition de la methode
   public function isValid($data)
   {
         $titre = $this->getElement('titre');
         $titre->addValidator(new Validate_NameMatch('TOTO'));
      return parent::isValid($data);
  }
}
?>