Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-08-2009 18:19:12

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

[Résolu] Passer des variables dans le header

Bonjour,

Je reviens de vacances avec les idées plus claires, et j'ai enfin mieux cerné mon problème, pour faire plus propre, j'ai créé un nouveau topic.

Voici mon problème :
- Lorsqu'un utilisateur s'authentifie dans mon application je récupère un tableau de paramètres avec diverses informations (nom, prenom, etc.).
J'aimerai pouvoir afficher certaines de ces informations systématiquement, dans le header de mon layout  ($this->render('header.phtml').

Pour infos, mon utilisateur authentifie dans un contrôleur AuthController.

Il est très facile de passer des variables, depuis le contrôleur, dans la vue correspondante. Mais lorsqu'il s'agit d'une autre vue, comme c'est le cas pour mon header, c'est tout de suite moins évident.

Comment feriez-vous ?



Ca peut paraître tout bête dans un développement traditionnel, mais je ne parviens pas à trouver de réponse simple et facile à mettre en oeuvre dans le cadre MVC du Zend Framework sad

Merci


aka miboo

Hors ligne

 

#2 27-08-2009 22:03:56

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

Re: [Résolu] Passer des variables dans le header

Hello,

Où sont les infos sur ton utilisateur ? L'idéal c'est dans la même table de base de données que les données d'authentification, ainsi avec Zend_Auth_Adapter_DbTable tu effectue l'authentification. Le résultat stocké en session peut alors contenir toutes les infos dont tu as besoin.

Code:

$user = Zend_Auth::getInstance()->getIdentity();
echo $user->nom . ' ' . $user->prenom;

A+


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

Hors ligne

 

#3 27-08-2009 22:41:01

oswalidos
Membre
Date d'inscription: 12-07-2009
Messages: 39

Re: [Résolu] Passer des variables dans le header

salut ,
si j'ai bien compris ,ce que tu cherche est l'aide de vue 'partial' .

par exemple, tu passe a la vue deux variables 'nomUser' et 'prenomUser' .

donc tu n'utilise plus render :

Code:

$this->render(header.phtml);

mais :

Code:

<?php echo $this->partial('header.phtml', array(
                                                      'nom' => $this->nomUser,
                                                       prenom => $this->prenomUser
                                                       )); 
?>

dans header.phtml

Code:

<ul>
<li>nom: <?php echo $this->escape($this->nom) ?></li>
<li>prenom: <?php echo $this->escape($this->prenom) ?></li>
</ul>

en fait j'ai etais confronté au meme probleme mais j'ai creé un aide de vue qui me renvoie un string que je l'affiche directement dans ma vue avec un echo , j'ai mis le code de ce view helper ici si ça t'interesse smile

la partie de la doc qui traite les partials est pas mal .


j'espere c'est ce que tu cherche smile
bon courage

Dernière modification par oswalidos (28-08-2009 03:41:24)

Hors ligne

 

#4 27-08-2009 23:02:02

throrin19
Membre
Date d'inscription: 01-03-2009
Messages: 318
Site web

Re: [Résolu] Passer des variables dans le header

et l'aide de vue getAuth() que j'ai trouvé sur ce forum ne convien pas à faire ceci?

Hors ligne

 

#5 28-08-2009 11:44:32

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: [Résolu] Passer des variables dans le header

mikaelkael a écrit:

Hello,

Où sont les infos sur ton utilisateur ? L'idéal c'est dans la même table de base de données que les données d'authentification, ainsi avec Zend_Auth_Adapter_DbTable tu effectue l'authentification. Le résultat stocké en session peut alors contenir toutes les infos dont tu as besoin.

Code:

$user = Zend_Auth::getInstance()->getIdentity();
echo $user->nom . ' ' . $user->prenom;

A+

A quel endroit veux-tu récupérer ton instance Zend_Auth ?


aka miboo

Hors ligne

 

#6 28-08-2009 13:05:06

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

Re: [Résolu] Passer des variables dans le header

Dans ton header directement.


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

Hors ligne

 

#7 28-08-2009 13:59:05

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: [Résolu] Passer des variables dans le header

En fait mon instance d'authentification ne comprend qu'un nom d'utilisateur et un mot de passe. En revanche, je récupère un tableau de paramètres qui m'intéresse, et je le stocke en session (peut être cela serait plus intéressant de le récupérer dans le registre Zend !?).

Bon je vais essayer de récupérer mes infos en session depuis le header smile


aka miboo

Hors ligne

 

#8 28-08-2009 15:26:50

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: [Résolu] Passer des variables dans le header

Effectivement ça marche, me reste plus qu'à trouver comment détruire en profondeur des variables de session.

Merci à tous


aka miboo

Hors ligne

 

#9 28-08-2009 15:46:27

Eureka
Membre
Date d'inscription: 18-07-2009
Messages: 81

Re: [Résolu] Passer des variables dans le header

Bonjour,

Vincent a écrit:

A quel endroit veux-tu récupérer ton instance Zend_Auth ?

mikaelkael a écrit:

Dans ton header directement.

Ce n'est pas anti-MVC que d'accéder à un tel objet directement dans un fichier de vue ?
Il n'existerait pas une manière plus "logique" d'ajouter le contenu dans une propriété de la vue ($this->view->headerData) comme on le ferait dans un contrôleur,  pour qu'on puisse passer les données en paramètre dans le partial (genre $this->partial(<file>, $this->headerData) ) ?
(peut-être un plugin ? ou autre ?)

La manipulation d'objets autre que $this dans les vues est une problématique à laquelle j'ai du mal à trouver des alternatives quand j'y pense...

Hors ligne

 

#10 28-08-2009 15:52:32

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: [Résolu] Passer des variables dans le header

Merci Eureka, tu résumes le fond de ma pensée et ce pourquoi ça m'a posé problème.


aka miboo

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