在Zend导航菜单的超链接中添加一些HTML元素的最佳方法是什么?
我想只在菜单的第一个子菜单中添加一个SPAN元素,因为它具有以下结构:
<ul>
<li><a href=""><span></span>home</a></li>
<ul>
<li><a href="...">users</a></li>
<li><a href="...">staff</a></li>
</ul>
<li><a href="..."><span></span>support</a></li>
....
您可以创建自己的导航模板,如下所示:
<?php $navigation = $this->navigation('Navigation')->getContainer();?>
<ul>
<?php foreach ($navigation as $page):?>
<li><a href="<?php echo $page->getHref(); ?>"><span></span><?php echo $page->label;?></a></li>
<ul>
<?php $subPages = $page->getPages();?>
<?php foreach ($subPages as $subPage):?>
<li><a href="<?php echo $subPage->getHref(); ?>"><?php echo $subPage->label;?></a></li>
<li><a href="<?php echo $subPage->getHref(); ?>"><?php echo $subPage->label;?></a></li>
<?php endforeach;?>
</ul>
<?php endforeach;?>
</ul>
只需将其保存在视图文件中,然后使用以下代码将其包含在布局中:
<?php echo $this->partial('layout/nav.phtml'); ?>
另一种可能的解决方案是使用导航视图辅助对象的renderPartial或setPartial方法,如下所述:http://framework.zend.com/manual/2.2/en/modules/zend.navigation.view.helper.menu.html#rendering-a-customizedmenu-using-a-partial-view-script