Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
J'ai implémenté Zend_Navigation pour mon menu principal eu lieu et place d'une simple liste ul/li statique. Sur 6 items, je route 2 d'entre elles (les autres pointants sur un couple controleur/index).
Problème :
Quand j'ouvre la page pour la 1ère fois, toutes les urls des ancres sont OK. Je clique sur un lien, je reviens à l'accueil, OK. Par contre, je clique sur un lien routé, et quand la page s'ouvre, tous les liens non-routés sont remplacés par le lien de la page ouverte. Bare with me ?! ^^
Contexte :
J'ai supprimé les routes par défaut et redéfini une route générale du style module.domain.tld/controller/action/params. Tout fonctionne bien.
Question :
D'où vient cette confusion des urls ? Un problème de "non-routage" des liens non routés ?
Hors ligne
Je pense que tu définis mal tes routes. Ce problème ressemble simplement à l'absence de route (et c'est l'url courante qui est utilisé - ou une ancre si t'es sur / ).
Hors ligne
Je définis mes routes dans un plugin (à la séquence routeStartup).
Pour le général :
$hostRoute = new Zend_Controller_Router_Route_Hostname(
':module.devsigning.local', array('module' => 'www')
);
$pathRoute = new Zend_Controller_Router_Route(
':controller/:action/:id',
array('controller' => 'index', 'action' => 'index', 'id' => '1')
);
Et pour les parties routées :
$aboutRoute = new Zend_Controller_Router_Route(
'/a-propos',
array('controller' => 'index', 'action' => 'about')
);
$contactRoute = new Zend_Controller_Router_Route(
'/contactez-moi',
array('controller' => 'index', 'action' => 'contact')
);
Et puis je les ajoute au routeur :
$router->addRoute('default', $hostRoute->chain($pathRoute));
$router->addRoute('a-propos', $hostRoute->chain($aboutRoute));
$router->addRoute('contactez-moi', $hostRoute->chain($contactRoute));
Ca reviendrait à dire que je devrais définir des routes pour tous mes liens à partir du moment où j'en définis au moins une ?
Dernière modification par Devsigning (14-10-2009 09:34:30)
Hors ligne
Up... up...
Hors ligne
Personne pour me dire comment mon système de routage est mal défini... ?
Hors ligne
up... je rame...
Hors ligne
Salut,
Tout comme l'aide de vue URL, Zend Navigation (qui utilise l'aide de vue au passage, tout s'explique !) utilise la route courante pour écrire les URLs si aucune route n'est définie.
J'entends par là que définir la route "null" ou ne pas définir de route dans l'aide de vue URL ne conduira pas à ce que la route "par défaut" soit utilisée.
Dès lors, si tu visualises une page ayant une route différente de la route par défaut, toutes les URL générées sans route tenteront d'utiliser la courante.
Solution de base ? Définir des routes pour tous les liens s'affichant sur une page dont la route n'est pas celle par défaut.
Solution générale, évitant tout souci à l'avenir ? Définir des routes pour toutes les URLs de l'appli.
Hors ligne
salut,
à ce jour il suffit d'utiliser par exemple en XML <route>default</route> d'instaurer la route default dans tous les items de ta navigation.
a plus
Dernière modification par nk34 (18-08-2011 23:12:09)
Hors ligne