Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-09-2010 10:38:33

poseiidon
Membre
Date d'inscription: 11-06-2009
Messages: 32

Persister un formulaire dans un layout.

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 :

Code:

    <!-- 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

 

#2 11-09-2010 12:01:50

poseiidon
Membre
Date d'inscription: 11-06-2009
Messages: 32

Re: Persister un formulaire dans un layout.

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

Code:

    <!-- 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

 

#3 11-09-2010 22:49:06

mdesloges
Nouveau membre
Date d'inscription: 08-09-2010
Messages: 8

Re: Persister un formulaire dans un layout.

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 :

Code:

<!-- Login -->
<div id="login">
    <?php echo $this->partial('login/login.phtml') ?>
</div>

et le script login/login.phtml

Code:

<?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;
?>

Core Developer Centurion
http://www.centurion-project.org - Flexible PHP5 Content Management Framework
http://centurion-project.org/articles - Demo, Updates, Developer Tips

Hors ligne

 

#4 18-09-2010 20:49:07

martinsupiot
Membre
Lieu: Nantes
Date d'inscription: 20-03-2007
Messages: 52
Site web

Re: Persister un formulaire dans un layout.

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

 

#5 19-09-2010 10:16:34

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Persister un formulaire dans un layout.

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

@+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#6 21-09-2010 18:31:50

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: Persister un formulaire dans un layout.

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

 

#7 09-03-2012 16:27:52

cyrille.t
Membre
Date d'inscription: 16-01-2012
Messages: 15

Re: Persister un formulaire dans un layout.

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 ??  smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages