Repars peut-être de zéro.

Comment as-tu surchargé ton formulaire ?
Je crois que la bonne manière est de créer dans ton appli un module sfAuth.
Dans un répertoire templates tu recopies le fichier signin.php qui se
trouves dans le répertoire du plugin. Là tu agis à ta convenance. 

Sinon, les logs te disent-ils qqch ?
Enfin, as-tu explicité les routes pour le plugin sfGuard comme indiqué dans
la doc (même si c'est optionnel) ?

-----Message d'origine-----
De : [email protected] [mailto:[email protected]] De la
part de chakir ezziani
Envoyé : vendredi 11 septembre 2009 11:14
À : [email protected]
Objet : [symfony-fr] Re: personnalisation Signin Form

merci Lélio 
pour la traduction ça marche bien mais maintenant je suis tombé dans un
autre probleme "le submit me marche pas "  quand j'entre un username et
password apré l'envoi du formulaire il me réaffiche le formulaire vide!!!!!
je pense que c l'action du form,n mais je suis pas sure
une idée ??


Le 11 septembre 2009 08:25, Lélio ML <[email protected]> a écrit :



        Pour la traduction, il suffit de mettre en place le module i18n et
        d'indiquer dans le settings.yml que default_culture: fr. Et hop, 95%
de
        l'interface de sfGuardPlugin est traduite... Sans action
particulière.
        Sinon, une petite lecture du code permet de savoir que le fichier
xml i18n
        où tu personnaliseras ta traduction est souvent sf_admin.xml (dans
le
        répertoire /apps/myApp/i18n/fr) sinon messages.xml
        
        Pas besoin de réécrire le template ou les classes
        
        -----Message d'origine-----
        De : [email protected]
[mailto:[email protected]] De la
        part de chakir ezziani
        Envoyé : jeudi 10 septembre 2009 17:24
        À : [email protected]
        Objet : [symfony-fr] Re: personnalisation Signin Form
        

        salut,
        le formulaire s'affiche on appelant le sfGuardAuth , on executant
        signinSuccess:
        <form action="<?php echo url_for('@sf_guard_signin') ?>"
method="post">
        <table>
         <?php echo $form ?>
         </table>
        
         <input type="submit" value="Connexion" />
        </form>
        
        voila mnt la form :
        
        class sfGuardFormSignin extends sfForm
        {
         public function configure()
         {
           $this->setWidgets(array(
             'username' => new sfWidgetFormInput(),
             'password' => new sfWidgetFormInput(array('type' =>
'password')),
             'remember' => new sfWidgetFormInputCheckbox(),
           ));
        
           $this->setValidators(array(
             'username' => new sfValidatorString(),
             'password' => new sfValidatorString(),
             'remember' => new sfValidatorBoolean(),
           ));
        
           $this->validatorSchema->setPostValidator(new
sfGuardValidatorUser());
        
           $this->widgetSchema->setNameFormat('signin[%s]');
         }
        
        et le validateur du form:
        class sfGuardValidatorUser extends sfValidatorBase
        {
         public function configure($options = array(), $messages = array())
         {
           $this->addOption('username_field', 'username');
           $this->addOption('password_field', 'password');
           $this->addOption('rememeber_checkbox', 'remember');
           $this->addOption('throw_global_error', false);
        
           $this->setMessage('invalid', 'veuillez v&eacute;rifier vos
        informations.');
        
         }
        
         protected function doClean($values)
         {
           $username = isset($values[$this->getOption('username_field')]) ?
        $values[$this->getOption('username_field')] : '';
           $password = isset($values[$this->getOption('password_field')]) ?
        $values[$this->getOption('password_field')] : '';
           $remember =
isset($values[$this->getOption('rememeber_checkbox')]) ?
        $values[$this->getOption('rememeber_checkbox')] : '';
        
           // user exists?
           if ($user = sfGuardUserPeer::retrieveByUsername($username))
           {
             // password is ok?
             if ($user->checkPassword($password))
             {
               return array_merge($values, array('user' => $user));
             }
           }
        
           if ($this->getOption('throw_global_error'))
           {
             throw new sfValidatorError($this, 'invalid');
        
           }
        
           throw new sfValidatorErrorSchema($this,
        array($this->getOption('username_field') => new
sfValidatorError($this,
        'invalid')));
         }
        }
        
        pour l'erreur "invalid' je l'ai converti en fraçais dans le
validateur mai
        elle reste a sa place lorsqu'elle s'affiche
        et si je laisse un champs vide l'erreur "required" s'affiche en
déformant le
        formulaire, et elle doi etre en français!!!!
        
        vraiment j'ai gaspier beaucoup de temps sur ça, je commence a
regretter
        l'utilisation de symfony
        
        cordialement
        
        
        
        
        
        
        
        
        
        
        
        Le 10 septembre 2009 14:17, Mikael Randy <[email protected]> a
écrit :
        
        
               Soit patient, on a tous une vie ;-)
        
        
               Comment est-ce que tu affiches ton formulaire ?
        
        
               Le 10 septembre 2009 16:02, chakir ezziani
        <[email protected]> a écrit :
        
        
                       salut
                       toujours pas de réponse les symfoniens?!!!!
        
        
                       Le 10 septembre 2009 10:33, chakir ezziani
        <[email protected]> a écrit :
        
        
                               Bonjour Mikael,
                               j'ai essayé le bout de code que tu m'as
envoyé et
        j'arrive a afficher les erreurs un peu loin des champs de saisie,
mais aussi
        il reste les ereeurs sur chaque champs !!!
                               pour l'erreur invalid on peu la modifier dans
le
        validateur sfGuardValidatorUser mais pour l'erreur "required" j'ai
pas
        trouvé ou l'instruction responsable de la renvoyé !!!!!?
        
        
        
                               Le 10 septembre 2009 09:44, Mikael Randy
        <[email protected]> a écrit :
        
        
                                       Il n'existe pas de fonction
renderError()
        (et pourtant dieu sais que ça serait pratique).
        
        
                                       Par contre, il est relativement
simple de
        récupérer les erreurs d'un formulaire :
        
                                       <?php if(
$form->getErrorSchema()->count() >
        0 ) : ?>
                                          <ul>
                                          <?php foreach(
        $form->getErrorSchema()->getErrors() as $field => $message ): ?>
                                             <li><?php echo $message ?></li>
                                          <?php endforeach ?>
                                          </ul>
                                       <?php endif ?>
        
        
                                       Le 1er if permet de contrôler s'il y
a des
        erreurs, le foreach récupère toutes les erreurs et les affiches une
à une.
        $field contient le nom du champ concerné et $message le message
d'erreur en
        question.
        
        
                                       Le 10 septembre 2009 11:31, sweetgirl
        <[email protected]> a écrit :
        
        
        
                                               Bonjour à tous,
                                               j'ai un probleme avec le
formulaire
        d'identification au backend de mon
                                               site, le soucis c'est au
niveau des
        messages d'erreurs ;qui
                                               s'affichent lorsque le
username ou
        le password est incorrect ou pas
                                               saisie; Donc l'affichage de
ces
        erreurs déforme tt le formulaire qui
                                               sort de son conteneur .....
                                               ce que je veux c'est faire
        personnaliser ce formulaire et faire une
                                               "div" apart qui va contenir
ces
        erreurs et les faire en français, mai
                                               le probleme c'est ou modifier
??
                                               ou sont les fonctions
        rendererrors()??
        
                                               Cordialement
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        







--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à