J'utilise Zend_Navigation (ajout doux au framework, btw) pour construire mon menu, après quoi il devrait être rendu dans la page (de manière évidente). J'ai d'abord mis le conteneur quelque part dans le contrôleur:Obtenir le menu Zend_Navigation pour travailler avec le Fisheye de jQuery
// $pages is the array containing all page information
$nav = new Zend_Navigation($pages);
$this->view->navigation($nav);
Ensuite, dans la mise en page, il est rendu comme ceci:
echo $this->navigation()->menu();
qui fonctionne parfaitement. Maintenant: je veux que le menu soit rendu un peu différemment. La page que je construis utilise le jQuery Fisheye-plugin pour construire un menu Dock Mac-like. Cependant, ce plugin a besoin d'un balisage spécifique ...
En fait, il faut une liste des éléments <a>
contenant à la fois un <img>
(l'icône) et un <span>
(pour l'info-bulle). L'assistant de vue Menu standard affiche tout ce qui se trouve dans une liste non ordonnée (logiquement), avec le paramètre 'label'
comme texte du lien.
Il semble que le contenu passé au paramètre 'label'
soit échappé avant le rendu, donc l'insertion du code HTML ne me sera d'aucune utilité. En outre, le Fisheye ne semble généralement pas prendre ses éléments contenus dans un tag <li>
, avec le tout enveloppé dans <ul></ul>
, mais juste une liste à un niveau d'éléments <a>
.
Je pensais à écrire un assistant de vue personnalisé pour le dock, qui pourrait prendre soin d'insérer le <img>
et le <span>
, mais j'ai beaucoup de mal à obtenir un assistant de vue personnalisé attaché à la navigation classe. Je n'arrive tout simplement pas à savoir où le placer et de quelle manière, même si toutes mes autres classes personnalisées (modèles et autres) sont soigneusement prises en charge par l'autochargeur. Des idées à ce sujet? Puis, même si je peux obtenir cette aide de vue, il me reste la liste HTML non ordonnée - je sais que je peux la perdre aussi en utilisant l'aide de vue personnalisée, mais j'ai toujours été fan de contenir des menus de navigation principaux dans une liste, pour des raisons de sémantique.
Si quelqu'un peut m'aider un peu, je l'apprécierais grandement. Si le Fisheye n'est pas conçu pour fonctionner avec <ul>
, ce serait dommage ... y aurait-il une bonne raison de perdre complètement Zend_Navigation dans ce cas?
Wow, réponse parfaite. Il semble qu'il y ait encore du travail à faire sur Zend_Navigation, mais cela m'amène où je dois aller. Merci! – JorenB
@JorenB juste pour que vous sachiez aussi, je viens de demander à Matthew P. (lead dev sur ZF) si elles incluraient des décorateurs pour la navigation à tout moment. Il a dit (en résumé) "pas prévu parce que les partiels ont très peu de frais généraux et que les décorateurs ne sont pas aimés par la communauté" ... on dirait que Zend_Nav est un succès en soi. – typeoneerror
J'ai essayé mais le conteneur est vide ... objet (Zend \ Navigation \ Navigation) # 509 (3) { ["pages": protected] => array (0) { } ["index": protected ] => array (0) { } ["dirtyIndex": protected] => booléen (false) } – cwhisperer