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 :

Message personnalisé (traduit) dans un addElement


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 Message personnalisé (traduit) dans un addElement
    Salut à tous,

    Partant d'une bonne base (ici) pour faire un appli convenable, je me lance.

    J'ai un plugin pour les traduction (fichier TMX) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //Gestion des langues
    require_once(APPLICATION_PATH.'/plugins/translations.php');
    $frontController->registerPlugin(new Translations());
    Ensuite, (maintenant là), j'aimerai donc traduire mes textes d'erreurs. Mais je n'y arrive pas, seul s'affiche ceux qui sont auto-générés pas ZF. Voici mon code :
    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
      public function init()  {
    	$translator = Zend_Registry::get('Zend_Translate');
     
            // set the method for the display form to POST
            $this->setMethod('post');
     
            // add an email element
            $this->addElement('text', 'email', array(
                'label'      => $translator->translate("T_l_email"),
                'required'   => true,
                'filters'    => array('StringTrim'),
                'validators' => array('EmailAddress',)
            ));
           ...
           ...
    J'aimerai donc rajouter du texte en français pour le(s) messages d'erreurs, un pu comme çà en rouge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    required'   => true,
                'filters'    => array('StringTrim'),
    	    'invalidMessage' => $translator->translate("T_msg_erreur_email"),
                'validators' => array('EmailAddress',)
    Un petit coup de main ?

    Merci
    Fabrice

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    Bonjour,

    Depuis la version 1.6, il est possible de faire des chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $element->addValidators(
    	array(array('emailAddress', false, array('messages' => array(
    		Zend_Validate_EmailAddress::INVALID => $translator->translate('\'%value%\' n\'est pas une adresse email valide.'),
    		Zend_Validate_EmailAddress::INVALID_HOSTNAME => $translator->translate('\'%value%\' n\'est pas une adresse email valide.'),
    		Zend_Validate_EmailAddress::INVALID_MX_RECORD => $translator->translate('\'%value%\' n\'est pas une adresse email valide.'),
    		Zend_Validate_EmailAddress::DOT_ATOM => $translator->translate('\'%value%\' n\'est pas une adresse email valide.'),
    		Zend_Validate_EmailAddress::QUOTED_STRING => $translator->translate('\'%value%\'  n\'est pas une adresse email valide.'),
    		Zend_Validate_EmailAddress::INVALID_LOCAL_PART => $translator->translate(' n\'est pas une adresse email valide.'),
    		Zend_Validate_EmailAddress::LENGTH_EXCEEDED => $translator->translate('\'%value%\' n\'est pas une adresse email valide.')
    		)))
    	));
    Mais la ou moi je coince, c'est d'arriver à définir une seule fois un message d'erreur pour tous les types d'erreurs.
    De plus, le validateur d'email, utilise aussi le validateur Hostname et je ne sais pas trop comment faire pour ces messages la.
    Donc c'est un début, et je serais curieux de savoir si qqun a réussi à aller plus loin.

    Merci de participer

    A+,
    Olivier

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    J'arrive pas comprendre, comment n'avoir qu'un seul message par element.
    A chaque fois il me sort toutes la listes des erreurs.
    Alors que si il y a une erreur au niveau de l'adresse email, je voudrais juste avoir un message du style : 'Cet adresse email n'est pas valide'.

    La je me retrouve avec toutes une liste d'erreurs :

    * 'sdf' is not a valid hostname for email address 'dsvf@sdf'
    * 'sdf' does not match the expected structure for a DNS hostname
    * 'sdf' appears to be a local network name but local network names are not allowed

    Si quelqu'un a une idée ...

  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
    Citation Envoyé par oliviercuyp Voir le message
    J'arrive pas comprendre, comment n'avoir qu'un seul message par element.
    A chaque fois il me sort toutes la listes des erreurs.
    Alors que si il y a une erreur au niveau de l'adresse email, je voudrais juste avoir un message du style : 'Cet adresse email n'est pas valide'.

    La je me retrouve avec toutes une liste d'erreurs :

    * 'sdf' is not a valid hostname for email address 'dsvf@sdf'
    * 'sdf' does not match the expected structure for a DNS hostname
    * 'sdf' appears to be a local network name but local network names are not allowed

    Si quelqu'un a une idée ...
    Une solution, c'est de créer ton propre validateur... qui utilise Zend_Validate_EmailAddress (comme Zend_Validate_EmailAddress utilise Zend_Validate_Hostname), mais qui ne renverrait qu'un message en cas d'erreur.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/12/2005, 16h32
  2. [MP] Messages qui restent dans la boîte d'envoi ?
    Par elitost dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 6
    Dernier message: 18/11/2005, 22h56
  3. Message d'erreur dans phpMyadmin
    Par riadh100 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/09/2005, 14h03
  4. [Tiles]message d'erreur dans un footer (form mal rempli)
    Par clement42 dans le forum Struts 1
    Réponses: 5
    Dernier message: 09/06/2005, 14h51
  5. capter les messages d'interbase dans une appli
    Par devalender dans le forum InterBase
    Réponses: 6
    Dernier message: 25/06/2004, 16h58

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