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 Framework PHP Discussion :

Zend Form contrôle des erreurs


Sujet :

Zend Framework PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 59
    Points : 35
    Points
    35
    Par défaut Zend Form contrôle des erreurs
    Bonjour je suis en train de mettre en place un formulaire via zend form et j'ai un soucis lorsque j'ai les erreurs qui s'affiche pour la captcha je n'arrive pas personnaliser son message quand j'utilise addErrorMessage() ca me créer un tableau avec deux éléments comportant mon message.
    Ma question c'est comment modifier le message pour le captcha ou dans l'absolue dire a mon formulaire de pas effectuer l'affichage/le retour des messages et que je les gères de mon controleur à l'aide des codes qu'il retourne.

    J'aimerais aussi pouvoir mettre en place un validateur pour l'url du site web

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    class CommentaireFormulaire extends Zend_Form 
    { 
        public function init() 
        { 
            $this->setName('ajout_commentaire');
     
     
            $pseudo = new Zend_Form_Element_Text('pseudo');
            $pseudo->setLabel('Pseudo : ')
                      ->setRequired(true)
                      ->addValidator(new Zend_Validate_StringLength(0,50))
                      ->addErrorMessage('Erreur champ pseudo')
                      ->addValidator('NotEmpty');
     
            $email = new Zend_Form_Element_Text('email');
            $email->setLabel('Email : ')
                  ->addFilter('StringToLower')
                  ->setRequired(false)
                  ->addValidator('NotEmpty', false)
                  ->addErrorMessage('Erreur champ email')
                  ->addValidator(new Zend_Validate_StringLength(0,50))
                  ->addValidator('EmailAddress'); 
     
            $site = new Zend_Form_Element_Text('siteweb');
            $site->setLabel('Site Internet : ')
                      ->setRequired(false)
                      ->addValidator(new Zend_Validate_StringLength(0,50))
                      ->addValidator('NotEmpty');
     
            $commentaire = new Zend_Form_Element_TextArea('commentaire');
            $commentaire->setLabel('Commentaire : ')
                      ->setRequired(true)
                      ->addErrorMessage('Erreur commentaire vide')
                      ->addValidator('NotEmpty');      
     
            $submit = new Zend_Form_Element_Submit('submit');
            $submit->setLabel('Ajouter Commentaire');
     
            $token = new Zend_Form_Element_Hash('token',array('salt'=>'unique'));
            $token->addError('');
            $captcha = new Zend_Form_Element_Captcha('captcha', array(
    													    'label' => "Saisir le code de validation : ",
    													    'captcha' => array(
    													        'captcha' => 'Figlet',
    													        'wordLen' => 3,
    													        'timeout' => 300
    													    )
    												));
    		$captcha->addError('');
     
            $this->addElements(array($pseudo,$site,$email, $commentaire,$token,$captcha,$submit));
     
        } 
    }
    Merci

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 130
    Points
    130
    Par défaut
    C'est peut être un peu tard mais voici une première solution :

    Dans le bootstrap :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    protected function _initTranslate()
    {
    	//On inclus les traductions fr
    	require_once APPLICATION_PATH.'/languages/fr/fr.php';
     
    	//Tout composant utilisant l'internationalisation dans ZF a la
    	//capacité de découvrir lui même un objet de traduction si celui
    	//ci est enregistré dans le registre à la clé "Zend_Translate"
    	Zend_Registry::set('Zend_Translate', $translate);
    }
    $translate est défini dans fr.php
    Il ne reste plus qu'à définie $translate

    Dans fr.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <?php 
     
            $french = array(
                'notAlnum' => "'%value%' ne contient pas que des lettres et/ou des chiffres.",
                'notAlpha' => "'%value%' ne contient pas que des lettres.",
                'notBetween' => "'%value%' n'est pas compris entre %min% et %max% inclus.",
                'notBetweenStrict' => "'%value%' n'est pas compris entre %min% et %max% exclus.",
                'dateNotYYYY-MM-DD'=> "'%value%' n'est pas une date au format AAAA-MM-JJ (exemple : 2000-12-31).",
                'dateInvalid' => "'%value%' n'est pas une date valide.",
                'dateFalseFormat' => "'%value%' n'est pas une date valide au format JJ/MM/AAAA (exemple : 31/12/2000).",
                'notDigits' => "'%value%' ne contient pas que des chiffres.",
                'emailAddressInvalid' => "'%value%' n'est pas une adresse mail valide selon le format adresse@domaine.",
                'emailAddressInvalidFormat' => "'%value%' n'est pas une adresse mail valide.",
                'emailAddressInvalidHostname' => "'%hostname%' n'est pas un domaine valide pour l'adresse mail '%value%'.",
                'emailAddressInvalidMxRecord' => "'%hostname%' n'accepte pas l'adresse mail '%value%'.",
                'emailAddressDotAtom' => "'%localPart%' ne respecte pas le format dot-atom.",
                'emailAddressQuotedString' => "'%localPart%' ne respecte pas le format quoted-string.",
                'emailAddressInvalidLocalPart' => "'%localPart%' n'est pas une adresse individuelle valide.",
                'hostnameInvalidHostname' => "'%value%' n'est pas un nom d'hôte valide.",
                'hostnameInvalidLocalName' => "'%value%' n'est pas un nom d'hôte local valide.",
                'notFloat' => "'%value%' n'est pas un nombre décimal.",
                'notGreaterThan' => "'%value%' n'est pas strictement supérieur Ã* '%min%'.",
                'notInt'=> "'%value%' n'est pas un nombre entier.",
                'notLessThan' => "'%value%' n'est pas strictement infèrieur Ã* '%max%'.",
                'isEmpty' => "Ce champ est vide : vous devez le compléter.",
                'stringEmpty' => "Ce champ est vide : vous devez le compléter.",
                'regexNotMatch' => "'%value%' ne respecte pas le format '%pattern%'.",
                'stringLengthTooShort' => "'%value%' fait moins de %min% caractères.",
                'stringLengthTooLong' => "'%value%' fait plus de %max% caractères."
            );
     
            $translate = new Zend_Translate('array', $french, 'fr');
    Et voilà tous les messages d'erreurs sont traduits.
    Les clés isEmpty, emailAddressInvalidFormat, etc sont les clés définis dans le framework (cf API).

    J'avais récupérer cette solution sur le net mais je ne trouve plus le lien vers la source désolé.

Discussions similaires

  1. [XL-2003] Contrôle des erreurs
    Par morgan_d dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 21/01/2015, 11h29
  2. Réponses: 5
    Dernier message: 11/04/2012, 12h57
  3. [Zend Form] Traduction des messages d'erreur
    Par Coyote Terrorist dans le forum Zend_Form
    Réponses: 8
    Dernier message: 01/08/2011, 19h33
  4. Rendre visible des contrôles sur un Form ayant des zones transparentes
    Par ProgElecT dans le forum Vos contributions VB6
    Réponses: 8
    Dernier message: 20/09/2007, 19h25
  5. Réponses: 8
    Dernier message: 20/01/2006, 13h46

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