Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour je débute avec Zend j'ai lu pas mal de tuto , maintenant je m'initialise à la pratique .
Je suis confronté à un soucis , j'ai mis en place un layout suivant :
<!-- Global --> <div id="global"> <!-- Login --> <div id="login"> //Ici faire persister un form login en fonction du statut logue sur tous les controlleurs. </div> <!-- Banner --> <div id="banner"> </div> <!-- Topnav --> <div id="topnav"> </div> </div>
Je souhaite afficher un formulaire de login vérifier avec Zend_Auth , je sais un peu prés que à partir de la , je dois récupérer une instance getidentity afin de pouvoir effectuer une condition qui permet de déterminé si je suis logué ou non. Mais le probléme et que je souhaite éviter de répéter ce code dans chacun des controlleurs sachant que quand je navigue sur le site tant que je suis pas logué quelque sois le controlleur ou je me trouve le formulaire doit toujours être présent. Un Plugin , un Partial , un Place Holder , la je suis un peu perdu , sachant que les aides de vues et un chapitre qui me perturbe encore un peu je dois dire.
Merci de votre aide
Hors ligne
Personnne pour aider ?
Dans mon cas j'ai un peu prés réussi à faire ce que je voulais avec l'aide de vues action.
Dans mon layout je fais appel à ma vue loginAction de mon controller LoginConroller
<!-- Global --> <div id="global"> <!-- Login --> <div id="login"> <?php echo $this->action('login' , 'login', 'default') ?> </div> <!-- Banner --> <div id="banner"> <?php echo $this->layout()->content; ?> </div> <!-- Topnav --> <div id="topnav"> </div> </div>
Une question ce pose est ce une bonne solution pour avoir ça loginbox dans toutes ces pages ?
Il a t'il une solution plus optimisé et cela me permettré de mieu comprendre le fonctionnement de zend.
Merci de votre aide.
Hors ligne
Bonsoir,
si j'ai bien compris votre problème, vous souhaitez faire en contrôle pour savoir si le user est authentifié et ce sur un certain nombre de page. l'utilisation d'un helper de vue est donc en effet une bonne solution toutefois, le choix du helper de vue "action" ne me parait pas être le meilleur. En effet, ce helper est assez impactant pour les performances, hors le contrôle d'authentification peut être sans nécessairement passé par un controlleur.
j'aurais plutôt eu tendance à utiliser un helper "partial" comme ceci :
dans le template des pages :
<!-- Login --> <div id="login"> <?php echo $this->partial('login/login.phtml') ?> </div>
et le script login/login.phtml
<?php if (Zend_Auth::getInstance()->hasIdentity()): ?> <span id="welcome">welcome back !</span> <?php else: ?> <form id="loginform"> <input type="text" name="login" /> <input type="password" name="pwd" /> <input type="submit" value="login"> </form> <?php endif; ?>
Hors ligne
Pourtant l'aide de vue action permet simplement d'utiliser zend form. Faire le rendu d'un formulaire devrait être très rapide. Un cache peut aussi s'avérer utile au cas ou.
Hors ligne
Hello,
Il faut plutôt envisager un plugin du contrôleur frontal destiné à centraliser la gestion de l'authentification et donc fournissant à la vue un formulaire Zend_Form si personne n'est connecté.
@+
Hors ligne
L'aide de vue Action, repasse par le processus de routage si j'me souviens bien. C'est pourquoi ce n'est pas très performant.
Je crois que la solution mdesloges est parfaite dans se cas et si tu veux couper la dépendance vers Zend_Auth dans ta vue tu passes par un plugin qui initialisera une variable pour ta vue, comme l'indique mikaelkael.
Hors ligne
mikaelkael a écrit:
Hello,
Il faut plutôt envisager un plugin du contrôleur frontal destiné à centraliser la gestion de l'authentification et donc fournissant à la vue un formulaire Zend_Form si personne n'est connecté.
@+
Hey, tu m'intéresse beaucoup là mais j'ai oublié mon Master ZF au placard, t'aurai pas un petit exemple par hasard stp ??
Hors ligne