Custom rendering of Zend_Navigation

Andy Baird picture Andy Baird · Dec 28, 2009 · Viewed 9.4k times · Source

I am using a navigation XML file in conjunction with my Zend Framework MVC app.

A top level menu is rendered at the top of my layout. The code to produce it looks like this:

$this->navigation()->menu()->renderMenu(null,array('maxDepth'   =>  0));

This will automatically render an unordered list of links that I have styled into my top menu. Now, I want to render the submenu (to render the active container tree) taking advantage of all the built-in Zend_Navigation goodness (MVC and ACL integration) but with custom markup. I would do this by inserting this:

$this->navigation()->menu()->renderSubMenu();

In fact, I have a very specific set of markup that I need to render this with. It is so drastically different I do not think I could style an unordered list to accomodate my desired presentation.

Is there a simple way (or complicated if need be ;) to customize a submenu?

Answer

typeoneerror picture typeoneerror · Dec 28, 2009

Check out this answer of mine: Getting Zend_Navigation menu to work with jQuery's Fisheye

Summarized, you create a view for the navigation and loop through the pages and use the page methods to create custom markup. As far as I know, there's no decorator-like support for Navigation currently.