Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-12-2009 17:16:05

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

[Resolu][Zend_Navigation] Conflit avec params et active() ??

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:

Code:

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

 

#2 01-12-2009 17:59:43

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [Resolu][Zend_Navigation] Conflit avec params et active() ??

J'ai trouvé une solution. Tous les params définis dans le navigation doivent être définis dans le route.

Code:

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:

Code:

$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 :

Code:

$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

 

#3 08-03-2010 21:26:49

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

Re: [Resolu][Zend_Navigation] Conflit avec params et active() ??

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

 

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