Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
J'utilise Zend depuis peu et me heurte à un petit problème : j'ai crée mon menu principale sans passer par zend_navigation mais je me rends compte aujourd'hui - lors de l'élaboration du breacrumb notamment - que je loupe pas mal de fonctionnalité. J'ai donc revu mon code pour passer via Zend_navigation, mon menu s'affiche bien, mon breadcrumb aussi lorsque la réécriture d'url est désactivée, lorsqu'elle est activée, zend_navigation et breadcrumb déconne: ils ne doivent pas être compatibles avec mon système de réécriture qui est assez simple :
cas REECRITURE URL à ON
- via le bootstrap, je regarde en BDD si la route demandée est connue, Si oui, j'initialise la route via new Zend_Controller_Router_Route et l'appli continus via l'url réécrite
- l'ensemble des liens sur le site sont affichés en URL système, je prends pour chacun leur équivalence réécrite si existante, sinon, je prends l'url système
cas REECRITURE URL à OFF
via le bootstrap, qu'importe l'url d'entrée, je continus vers le controlleur correspondant, il gueulera ou pas.
1 - Il y a t'il un moyen de combiner Zend_Navigation et 'ma' réécriture d'URL ? j'ai bien généré le tableau que Zend_Navigation demandait, comment puis je agir sur le rendu des URL niveau href réécrite, car pour le moment, zend_navigation prend la même url que celle courante et ce pour tous mes liens de menus.
2 - Pareil pour le breadcrumb, comment pourrais je les combiner à savoir, zend fait tout son boulot sur l'arborescence et la présence ou non d'un lien dans le menu mais me laisse gérer l'affichage - en prenant en compte l'url réécrite et non celle système.
Merci d'avance.
Raph
Hors ligne
Hello,
Bon j'avance doucement, maintenant, cela fonctionne quand ma réécriture d'url est active. Le problème et pas des moindre est qu'il faut que mes urls soient réécrites dans mon menu et mon breadcrumb : j'ai ajouté dans le tableau PHP que je donne à Zend_Navigation ceci pour chaque entrée:
$return = array();
$return['label'] = $category->getLabel();
$return['module'] = 'content';
$return['controller'] = 'category';
$return['action'] = 'view';
$return['params'] = array('cid'=>$category->getEntityId());
$return['route'] = $category->getUrlRewrite();
Mais c'était trop beau pour être vrai, ça ne marche pas ... il me dit que la route n'a pas été trouvée; à priori, Zend veut que je déclare l'ensemble de mes routes en amont. Je ne tiens vraiment pas à faire ça, ce serait trop lourd c'est pourquoi je suis parti sur 2 approches que je n'arrive pas à concrétiser :
1) surcharger l'aide de vue Zend_View_Helper_Navigation_Menu : afin d'avoir accès à la méthode htmlify et changer les href.
2) surcharger l'aide de vue Zend_View_Helper_Url : afin de lui dire quelle url prendre si url rewrite actif ou pas (méthode url(...)), et ainsi indirectement changer le résultat de la méthode getHref() de Zend_View_Helper_Navigation_Menu méthode htmlify().
Malgré les forums, tuto, google, impossible de surcharger ces classes. Si vous pouviez m'aiguiller sur ces deux points - ou si vous avez une meilleur solution - ce serait vraiment super !
Merci d'avance
raph
Hors ligne
Hello,
Ce manque de réponse me fous le cafard. Si je ne suis pas assez précis dans ma requête dites le moi, j'apporterais des précisions.
Raph
Hors ligne
Pages: 1