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 à