Bonjour,
Je travaille sur un petit projet qui utilise Zend_Navigation ainsi que des routes.
Problème : Mes URL générés par Zend_Navigation ne sont pas formatées conformément à mes routes définies.
Voici mon code. l'exemple concerne la route appelée 'plus' :
1) fichier xml pour Zend_Navigation :
2) Fichier INI pour définir les routes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ... <plus> <label>Plus</label> <resource>index</resource> <privilege>plus</privilege> <module>default</module> <controller>index</controller> --> <action>plus</action> --> <route>plus</route> </plus> ...
3) Dans mon bootstrap :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ... ; plus indexPlus.type = 'Zend_Controller_Router_Route_Static' indexPlus.route = 'plus' indexPlus.defaults.module = 'default' indexPlus.defaults.controller = 'index' indexPlus.defaults.action = 'plus' ...
Résultat obtenu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 ... /** * Création des routes */ protected function _initRoutes() { $cacheStd = $this->bootstrap('cachemanager')->getResource('cacheManager')->getCache('std'); if(!($router = $cacheStd->load('routerRewrite'))) { $router = new Zend_Controller_Router_Rewrite; $router->addConfig(new Zend_Config_Ini(... chemin vers fichier .INI ...)); $cacheStd->save($router, 'routerRewrite', array(), null); } $router = $this->getResource('frontController')->setRouter($router); } /** * Création de l'objet de navigation * * @return Zend_Navigation */ protected function _initNavigation() { $this->bootstrap('routes'); $cacheStd = $this->bootstrap('cachemanager')->getResource('cacheManager')->getCache('std'); if(!($navigation = $cacheStd->load('navigation'))) { $navigation = new Zend_Navigation(new Zend_Config_Xml(... chemin vers fichier .XML ...)); $cacheStd->save($navigation, 'navigation', array(), null); } return $navigation; } ...
L'URL pour l'option de menu "plus" définie s'affiche sous forme : www.mondomaine.fr/index/plus
alors que je veux quelque chose comme : www.mondomaine.fr/plus
Pourquoi cela n'est pas le cas ? Qu'est ce que j'ai fais qui ne va pas ?
Merci pour votre aide,
J'ai pas mal cherché sur le net mais je n'ai rien trouvé...
Zebulon
Partager