Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je tente de faire passer un "auth" dans mon layout pour utiliser dans celui-ci:
<?php if($this->auth->hasIdentity()): ?> Je suis reconnu. <?php else: ?> Pas moi <?php endif; ?>
Pour l'instant, j'y arrive en passant ceci dans mes "init" de "controlleur":
$this->_auth = Zend_Auth::getInstance(); $this->view->auth = $this->_auth;
Mais j'aimerai ne pas être obligé de le faire à chaque fois... pour l'utiliser dans mon layout, comment faire ?
Hors ligne
tu etends Zend_Controller_Action
class My_Controller_Action extends Zend_Controller_Action{ public $view ; public function init(){ $this->view->auth = Zend_Auth::getInstance(); } }
puis tes controlleurs etendent My_Controller_Action au lieu de Zend_Controller_Action
Peut etre peux tu gérer ca au niveau des plugins mais j'ai pas encore aborder le sujet
Hors ligne
Merci, mais ce que tu me propose revient au même, il me faudra toujours faire :
class IndexController extends My_Controller_Action { public function init() { parent::init(); // Reste du code d'init } }
Donc que ce soit une ligne ou une autre.... ça m'oblige à le déclarer quand même :-s
Le pire, c'est que je passe :
$auth = Zend_Auth::getInstance(); $frontController->setParam('auth', $auth);
Dans mon contrôleur frontal.
Personne ne saurez comment récupérer dans mon LAYOUT la variable envoyer à mon FRONT CONTROLLER ??
Hors ligne
Zend_Registry??
Remarque à propos du problème de init
class My_Controller_Action extends Zend_Controller_Action{ public $view ; public function init(){ $this->view->auth = Zend_Auth::getInstance(); $this->myInit(); } } class IndexController extends My_Controller_Action { public function myInit() { //.. } }
Hors ligne
Julien Breux a écrit:
Merci, mais ce que tu me propose revient au même, il me faudra toujours faire :
Code:
class IndexController extends My_Controller_Action { public function init() { parent::init(); // Reste du code d'init } }Donc que ce soit une ligne ou une autre.... ça m'oblige à le déclarer quand même :-s
Ce n'est vrai que si tu as des traitements supplémentaire a faire dans ton init() de ta classe finale. tu peux alors contourné le probleme en faisant ce que Mr.Moox a dit (PS: j'ai failli dire la meme chose ^^)
Dernière modification par ndesaleux (17-09-2008 16:44:48)
Hors ligne
J'y pensais également, mais Mr.MoOx, n'y a t'il pas une façon plus simple ?
-- Merci à vous deux --
Hors ligne
Je la trouve assez simple pour ne pas avoir cherché plus loin.
Sinon faut voir du coté des plugins et pour moi c'est plus compliqué, vu que ça ne situe pas au même niveau du traitement ... la vue sera elle initialisé? faut il le faire? ...
Trop de questions alors que j'ai déjà une réponse (loin d'être compliquée) !
Hors ligne
Moi, j'utilise haystack pour ca. Comme un menu dynamique. Sauf que ca n'affiche pas un menu, mais, soit ca n'affiche 'invité', soit ca affiche un pseudo avec une bouton de deconnection
dans le layout, ca donne ca
<?= $this->layou()->status;?>
Hors ligne