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 à