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