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 :

Messages d'erreur personnalisés (forme contractée) [ZF 1.7]


Sujet :

Zend_Form PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut Messages d'erreur personnalisés (forme contractée)
    Bonjour,

    Pour définir mes validateurs de formulaire, j'utilise un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            $titre = new Zend_Form_Element_Text('titre');
            $titre->setLabel('Titre')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('stringLength', false, array(3, 40));
    Une solution pour définir un message d'erreur personnalisé est de l'enregistrer dans une variable et d'y apppliquer la méthode setMessage(array,array), puis de définir le validateur associé au champ de formulaire. Cependant, je voudrais pouvoir appliquer mes messages d'erreurs directement dans le code ci-dessus par exemple, je sais que c'est possible car je l'ai déjà vu sur un tuto mais impossible de remettre la main dessus, comment est-ce possible de réaliser ça svp ??

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

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

    Tu peux faire ça dans le tableau d'options passées au validateur (clé 'messages') :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $titre->setLabel('Titre')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('stringLength',
                       false,
                       array('min' => 3,
                             'max' => 40,
                             'messages' => array('stringLengthTooShort' => '"%value%" fait moins de %min% caractères !',
                                                 'stringLengthTooLong' => '"%value%" dépasse les %max% caractères autorisés !')));

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    Ah merci !!! j'avais fais des essais en passant un "n"ième paramètre, sans succès naturellement :p

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    Où peut-on trouver les clés pour les messages ? car si certains vont de soient d'autres ne sont pas évident du tout, je cherche notamment la clé pour le type d'un fichier non valide, j'ai regardé dans la classe Zend_Form_Element_File, mais je n'ai pas trouvé (alors que j'avais trouvé pour stringLength).

  5. #5
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Zend_Form_Element_File n'est pas un validateur, c'est un élément de formulaire. Donc il est normal que tu n'aies pas de message de validation dedans

    Que veux tu dire par type d'un fichier non valide ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    Ouais pertinent ta remarque sur le Zend_Form_Element_File...

    Je veux dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addValidator('MimeType', false, array('image/png','image/jpeg','image/gif','image/bmp'))
    Je veux mettre un message d'erreur en cas de problème avec le mime_type...

    Question annexe : Zend utilise quoi pour checker le type ? y'a une extension à installer ? (c'est pas marqué dans les pré-requis mais sait-on jamais...)

  7. #7
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    tu retrouves les contantes en début de validator. Par exemple pour Zend_Validate_File_MimeType (Zend/Validate/File/MimeType.php) :
    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
        /**#@+
         * @const Error type constants
         */
        const FALSE_TYPE   = 'fileMimeTypeFalse';
        const NOT_DETECTED = 'fileMimeTypeNotDetected';
        const NOT_READABLE = 'fileMimeTypeNotReadable';
        /**#@-*/
     
        /**
         * @var array Error message templates
         */
        protected $_messageTemplates = array(
            self::FALSE_TYPE   => "The file '%value%' has a false mimetype of '%type%'",
            self::NOT_DETECTED => "The mimetype of file '%value%' could not been detected",
            self::NOT_READABLE => "The file '%value%' can not be read"
        );
    Tu peux aussi bien sûr les retrouver dans la description de l'API de Zend : http://framework.zend.com/apidoc/core/ (choisir le package Zend_validate, puis déployer 'class(es)' et choisir 'Zend_Validate_File_MimeType')

    En regardant la doc de Zend sur ce validateur et le fichier MimeType.php (méthode isValid() ), tu peux voir qu'il utilise fileinfo pour analyser les fichiers.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    OKEY merci pour le lien vers l'API, j'avais jamais vu ça, thank you so much.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. personnaliser message d'erreur infopath forms services
    Par ahmedmido dans le forum InfoPath
    Réponses: 2
    Dernier message: 03/06/2008, 12h47
  2. message d'erreur des form incomplet
    Par ghost-x dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 22/03/2007, 17h41
  3. [Vba-E] Message d'erreur "Microsoft Forms"?
    Par gootsu dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 27/07/2006, 08h22
  4. Message d'erreur de form designer d'oracle 9i DS(FRM-10142)
    Par benjamin50 dans le forum Designer
    Réponses: 12
    Dernier message: 15/01/2005, 17h01
  5. [FORMS] Message d'erreur FRM-40106
    Par sourizeante dans le forum Forms
    Réponses: 2
    Dernier message: 11/08/2004, 18h15

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