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 :

Texte de setMessage non pris en compte (getValidator)


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Par défaut Texte de setMessage non pris en compte (getValidator)
    Salut à tous,

    Je voudrais afficher, avec Zend_Form, des messages d'erreurs, spécifique par validateur, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $email->setLabel('eMail')
    		->setRequired(true)
    		->addFilter('StripTags')
    		->addFilter('StringTrim')
    		->addValidator('notEmpty')
    		->addValidator('stringLength', false, array(6, 255))
    		->addValidator('emailAddress')
    		->setDecorators($decorators);
     
    		$email->getValidator('notEmpty')->setMessage('Votre email est obligatoire');
    		$email->getValidator('stringLength')->setMessage('Votre email doit etre de 6 à 255 caracteres');
    		$email->getValidator('emailAddress')->setMessage('Votre email n\'est pa valide');
    Il ne m'affiche que le premier message (notEmpty), les autres sont ceux d'origine, en anglais (je ne parle pas de traduction là). Donc, les 2 derniers getValidator ne sont pas pris en compte.

    J'ai essayé plusieurs méthodes sans succès. Comment faire ?

    Merci

    Fabrice

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    il faut préciser le type de message en deuxième paramètre de la méthode setMessage().

    Si ce type n'est pas précisé, c'est le premier qui est pris... Ce qui tombe bien pour le validateur notEmpty mais pas pour les autres...

    Pour info, les types de message pour chaque validateur :
    - NotEmpty : IS_EMPTY, INVALID
    - StringLength : INVALID, TOO_SHORT, TOO_LONG
    - EmailAddress : INVALID, INVALID_FORMAT, INVALID_HOSTNAME, INVALID_MX_RECORD, DOT_ATOM, QUOTED_STRING, INVALID_LOCAL_PART, LENGTH_EXCEEDED

  3. #3
    Membre éclairé
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Par défaut
    Salut,

    merci pour ta réponse, mais aurais-tu un exemple concret ou un lien stp ?.

    Merci
    Fabrice

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    La liste des messages : http://framework.zend.com/manual/fr/....messages.html

    Un exemple de modification de messages par défaut (non testé, il peut rester des coquilles) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $stringLength = $email->getValidator('stringLength');
    $stringLength->setMessage("La valeur testée doit être une chaîne de caractères", $stringLength::INVALID);
    $stringLength->setMessage("La valeur '%value%' fait moins de %min% caractères !", $stringLength::TOO_SHORT);
    $stringLength->setMessage("La valeur '%value%' fait plus de %max% caractères !", $stringLength::TOO_LONG);
     
    // il est aussi possible de passer un tableau à setMessages) :
    $stringLength->setMessages(array($stringLength::INVALID   => "La valeur testée doit être une chaîne de caractères",
            $stringLength::TOO_SHORT => "La valeur '%value%' fait moins de %min% caractères !",
            $stringLength::TOO_LONG  => "La valeur '%value%' fait plus de %max% caractères !"));
    Mais pour une traduction, il est clair qu'il est préférable d'utiliser Zend_Translate...

Discussions similaires

  1. [TortoiseSVN] Format Unix d'un fichier texte non pris en compte lors d'un commit
    Par jonzuzu dans le forum Subversion
    Réponses: 0
    Dernier message: 26/03/2009, 13h49
  2. [HTML] text-align: justify; non pris en compte ?...
    Par {F-I} dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 30/03/2008, 23h49
  3. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57
  4. [event] keyListener non pris en compte
    Par pierre.zelb dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/08/2005, 08h35

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