Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour, j'aurais besoin de votre aide pour comprendre pourquoi zend_navigation ne peut plus détecter quels sont mes pages actives si j'utilise des params dans la création du container de Zend_Navigation:
//Je vais couper pour être simple $pages = array( array( 'controller' => 'profilducabinet', 'action' => 'vision', 'module' => 'default', 'route' => 'profilducabinet', 'class' => Zend_Registry::get('session')->lang.'-profil', 'params' => array('@locale' => Zend_Registry::get('session')->lang 'label' => 'titre-profil', //'active' => true, 'pages' => array( array( ....
Ici mon paramètre est la local mais si je fais simplement id =>2, impossible de détecter que ma page est active. Par contre, si j'enlève complètement cette ligne, tout fonctionne. Le problème n'est pas relié au Route, si je l'enlève, même problèmes.
Est-il possible de définir la page active dans un controller ?
Est-il possible de récupéré la page présentement active ?
Il faut définir un params supplémentaires pour régler le problème ?
Dernière modification par probitaille (01-12-2009 17:56:08)
Hors ligne
J'ai trouvé une solution. Tous les params définis dans le navigation doivent être définis dans le route.
Note that when using the route property in a page, you should also specify the default params that the route defines (module, controller, action, etc.), otherwise the isActive() method will not be able to determine if the page is active. The reason for this is that there is currently no way to get the default params from a Zend_Controller_Router_Route_Interface object http://framework.zend.com/manual/en/zend.navigation.pages.html
En résumé, si j'ai ceci:
$pages = array( array( 'controller' => 'profilducabinet', 'action' => 'vision', 'module' => 'default', 'route' => 'profilducabinet', 'class' => Zend_Registry::get('session')->lang.'-profil', 'params' => array('@locale' => Zend_Registry::get('session')->lang), 'label' => 'titre-profil', //'active' => true, 'pages' => array( ...
Mon route associé doit contenir les paramètres, dans ce cas-ci, local :
$router->addRoute('profilducabinet',new Zend_Controller_Router_Route('/@profil-du-cabinet',array('controller' =>'profilducabinet','action'=>'vision','@locale' => Zend_Registry::get('session')->lang)));
Je retire donc mes mots dans le derniers post qui disait qu'il y avait aucun lien avec les routes !
Hors ligne
Merci pour ces informations. J'avais une partie de mon site qui fonctionnait et pas les autres sur d'autres modules.
J'avais juste oublié de définir le module dans ma conf...
Hors ligne
Pages: 1