我有这个菜单:
$menu['talent'] = array(
array('id' => 'welcome',
'label' => 'My Profile',
'uri' => '/profile/,
'class' => 'navlink'
)
),
array('id' => 'welcome',
'label' => 'My Profile',
'class' => 'navlink',
'uri' => '/profile/
),
);
这将最终看起来像这样:
<ul>
<li><a href="" class="navlink">My Profile</a></li>
<li><a href="" class="navlink">My Profile</a></li>
<ul>
如何将ul
更改为div
,将li
更改为其他内容?
任何idas?
由于
答案 0 :(得分:1)
嗯,要实现这一点,我会使用以下两种方法之一:
为了重载Zend_View_Helper_Navigation_Menu
,您可以编写自己的帮助程序,注册它并使其扩展Zend_View_Helper_Navigation_Menu
。在您的帮助程序中,您可以重载所需的方法,例如_renderMenu()
和使其呈现<p>
而不是<li>
。在View Helper中,您必须返回parent :: menu()或类似的内容。
最后,您必须使用以下方式注册这个新的View Helper:
$view->addHelperPath(APPLICATION_ROOT . '/library/My/View/Helper/Navigation', 'My_View_Helper_');
这个在我看来要长一点,但值得一试。
基本上,您需要使用setPartial()
方法将部分脚本设置为导航,并且您将通过此部分呈现菜单。
<?= $this->navigation()->menu()->setMaxDepth(2)->setPartial('partials/_nav.phtml')->render() . PHP_EOL; ?>
然后,在您的_nav.phtml中,您可以根据需要渲染菜单。从这部分中,您可以使用$this->container
访问菜单变量。然后,您可以遍历容器的每个页面,并显示您想要的内容。
我知道所有这些对于这么简单的任务来说似乎都很复杂,但不幸的是,这是唯一的解决方案。有没有人有更好的主意?