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.