http://www.clementdelmas.fr/blog/developpement-web/symfony/formulaire-dauthentification-pour-frontend-avec-sfguardplugin/comment-page-1#comment-9
Formulaire d’authentification pour frontend avec sfGuardPlugin
Dans la série « je déterre des tutos que j’ai rédigé l’an dernier », voilà un tutoriel fait pour symfony. Il a été rédigé pour la 1.2, mais je pense qu’il doit être encore compatible pour 1.4 (à vérifier quand même). Le but de ce tutoriel est de vous montrer comment faire, simplement et rapidement, un formulaire d’authentification pour l’application frontend, dans un component, le tout avec sfGuardPlugin (ouf!). Je vous invite à lire au passage, la documentation du plugin et un extrait du guide pour Symfony 1.2, qui pourront toujours vous aider / compléter cet article.Création du component
On crée un component contenant le code de l’action qu’on veut exécuter dans le partial. Pour cela, crée un nouveau fichier components.class.php dans le module lié au component (dossier sfGuardAuth/actions). Ensuite, on édite le fichier et on ajoute la création du formulaire :<?php
class sfGuardAuthComponents extends sfComponents
{
public function executeSideSignin($request)
{
$class = sfConfig::get('app_sf_guard_plugin_signin_form', 'sfGuardFormSignin');
$this->signinForm = new $class();
}
}
?>
Création du template
On crée le template du component (dans notre cas _sideSignin.php dans le dossier sfGuardAuth/templates),qui permettra d’afficher le formulaire de connexion, et on l’édite:
<h2>Formulaire d'identification</h2>
<form id="signinForm" action="<?php echo url_for('@sf_guard_signin') ?>" method="post" class="clearfix">
<div id="signinFields">
<label for="signin_username">Login</label>
<input type="text" name="signin[username]" id="signin_username" />
<br />
<label for="signin_password">Mot de passe</label>
<input type="password" name="signin[password]" id="signin_password" />
<br />
<input type="checkbox" name="signin[remember]" id="signin_remember" />
<label for="signin_remember">Se souvenir de moi</label>
</div>
<div id="signinSubmit">
<?php echo $signinForm->renderHiddenFields();
?>
<!-- a href="#">Mot de passe oublié ?</a> | -->
<input type="submit" value="Connexion »" />
</div>
</div>
Finalisation
Il ne reste plus qu’à l’intégrer dans le template voulu, avec le fameux : "include_component(’sfGuardAuth’, ’sideSignin’);", vider le cache et rafraichir la page…Pour tester si l'utilisateur est déjà authentifié, on se sert de cette fonction : if(!$sf_user->isAuthenticated())
include_component('sfGuardAuth', 'sideSignin'); ?>
Merci à clementdelmas.fr
gg
RépondreSupprimerMerci ! C'est simple et efficace.
RépondreSupprimerBravo Chapeau et Merci
RépondreSupprimer