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é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 -~----------~----~----~----~------~----~------~--~---
