Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je débute sur Zend, et j'ai tite question :
Pour réaliser un menu présent sur toutes les pages, j'ai besoin d'accéder au nom de mes controllers.
Je mets donc ça dans mes controllers :
$this->view->controllerName = $this->_request->getControllerName();
Y-a t'il un moyen d'éviter de coller ça dans chaque controller ? j'veux dire puis-je utiliser un controller "maître" qui serait utilisé dans chaque controller , ou bien "helper" de controller ? Si oui comment ? ou alors dois-je le mettre dans le bootstrap ? là encore quelle syntaxe ?
Ces questions sont ptet issues d'une mauvaise compréhension des principes de bases, dans ce cas j'en suis désolé d'avance ;
Charly
Dernière modification par charlysquare (06-11-2007 20:26:06)
Hors ligne
Un "controller maître" c'est exactement un helper.
Pour l'initialiser dans le bootstrap, tu fais
Zend_Loader::loadClass("Kitpages_Controller_Action_Helper_ViewManager"); $viewManager = new Kitpages_Controller_Action_Helper_ViewManager(); Zend_Controller_Action_HelperBroker::addHelper($viewManager);
Et dans ton helper tu mets un truc du genre :
class Kitpages_Controller_Action_Helper_ViewManager extends Zend_Controller_Action_Helper_Abstract { public function preDispatch() { $this->getActionController()->view->controllerName = $this->_request->getControllerName(); } }
Je ne suis pas sur des syntaxes dans le helper, vérifie dans la doc, mais l'idée est là.
A+, Philippe
PS : fais pas gaffe au nom de la classe, j'ai fait des copier-coller de codes à moi...
Hors ligne
Hello,
Merci beaucoup pour cette réponse ; Après un load de la class abstract dans le helper, et un ptit changement de _request à getRequest(), ça marche nickel !
Charly
Dernière modification par charlysquare (06-11-2007 10:18:10)
Hors ligne