Two questions now come to my mind :

- Is it mandatory to use decorators to place a hint text below fields ?

- Is it possible to specify a different error message for the same error in
two different fields ?

  I mean this way (if it's not already possible, this code comes from ALkyD
on Z-f.fr), he's got a sub-class Form which inherits of Zend_Form with a
method setValidatorMessages(array $messages) :

public function setValidatorMessages(array $messages)
    {
        $elements = $this->getElements();
        $i = 0;
        
        foreach ($elements as $el)
        {
            $validators = $el->getValidators();
            
            foreach ($validators as $v)
            {
                if (is_array($messages[$i]))
                    $v->setMessages($messages[$i]);
                else
                    $v->setMessage($messages[$i]);
                    
                $i++;
            }
        }
    }



And then in the form :

// Construction du formulaire        
$login = new Zend_Form_Element_Text('txt_Login');
$login->setLabel('Pseudo :')
         ->addValidator(new Zend_Validate_NotEmpty());             //
Validateur n°1
              
$pass = new Zend_Form_Element_Password('txt_Pass');
$pass->setLabel('Mot de passe :')
         ->addValidator(new Zend_Validate_NotEmpty())              //
Validateur n°2
         ->addValidator(new Zend_Validate_StringLength(4, 8));   //
Validateur n°3

$submit = new Zend_Form_Element_Submit('bt_Submit');
$submit->setValue('Se connecter');

$form = new Form();
$form->setMethod('post')
         ->addElement($login)
         ->addElement($pass)
         ->addElement($submit);
$form->setValidatorMessages(array(
          'Le pseudo est obligatoire.',         // Message pour le
validateur n°1
          'Le mot de passe est obligatoire.' // Message pour le validateur
n°2
          array(                                       // Messages pour le
validateur n°3
               'Le mot de passe est trop court', 
               'Le mot de passe est trop long'
          )
));



Is that already possible or is it required to use this method ?





Thanks! :-D


Matthew Weier O'Phinney-3 wrote:
> 
> -- Dividy <[EMAIL PROTECTED]> wrote
> (on Monday, 04 February 2008, 09:42 AM -0800):
>> Thanks for all your good advices. I tried everything you proposed some
>> days
>> ago and it didn't give any good results. That's why i have come with this
>> solution.
>> 
>> But please, if you could give me an example of line you'd put in a csv
>> file,
>> that would be great :)
>> 
>> e.g. I tried using "isEmpty;The string is empty" in my en.csv file and
>> then
>> put the translation in my fr.csv file, but it didn't work :)
> 
> You had it right... but there was a problem in trunk... while validation
> in the *elements* was getting properly translated, the form object was
> not injecting the translator into the elements... oops!
> 
> Corrected now in svn trunk.
> 
> 
>> Thanks in advance for your precious time.
> 
> And thank you for the issue reporting!
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Zend_Form-and-validation-language-tp15248574s16154p15289026.html
Sent from the Zend Framework mailing list archive at Nabble.com.

Reply via email to