This chapter documents primarily backwards compatibility breaks made in
Zend_Navigation and Zend_View_Helper_Navigation, and should serve to aid
in migration from previous versions.
Migrating from versions prior to 1.9
Prior to the 1.9 release, the menu helper
(Zend_View_Helper_Navigation_Menu) did not
render sub menus correctly. When the onlyActiveBranch
was TRUE and the option renderParents
FALSE, nothing would be rendered if the deepest active
page was at a depth lower than the minDepth
option.
In simpler words; if minDepth
was set to 1
and the active page was at one of the first level pages, nothing
would be rendered, as the following example shows.
Consider the following container setup:
<?php
$container =
new Zend_Navigation
(array(
'label' => 'Home',
'uri' => '#'
),
'label' => 'Products',
'uri' => '#',
'active' => true,
'label' => 'Server',
'uri' => '#'
),
'label' => 'Studio',
'uri' => '#'
)
)
),
'label' => 'Solutions',
'uri' => '#'
)
));
The following code is used in a view script:
<?php echo $this->
navigation()->
menu()->
renderMenu($container,
array(
'minDepth' => 1,
'onlyActiveBranch' => true,
'renderParents' => false
)); ?>
Before release 1.9, the code snippet above would output nothing.
Since release 1.9, the _renderDeepestMenu() method in
Zend_View_Helper_Navigation_Menu will accept
active pages at one level below minDepth
, as long as
the page has children.
The same code snippet will now output the following:
<ul class="navigation">
<li>
<a href="#">Server</a>
</li>
<li>
<a href="#">Studio</a>
</li>
</ul>