自定义渲染的Zend_Navigation
问题描述:
我正在使用导航XML文件与我的Zend Framework MVC应用程序一起使用。自定义渲染的Zend_Navigation
*菜单显示在我的布局顶部。生成它的代码如下所示:
$this->navigation()->menu()->renderMenu(null,array('maxDepth' => 0));
这会自动呈现我已设置到顶层菜单中的链接的无序列表。 现在,我想渲染子菜单(呈现活动容器树),利用所有内置的Zend_Navigation善良(MVC和ACL集成),但使用自定义标记。我会这样做插入:
$this->navigation()->menu()->renderSubMenu();
事实上,我有一套非常具体的标记,我需要与此呈现此。这是非常不同的我不认为我可以设计一个无序列表来适应我想要的演示。
是否有简单的方法(或者需要复杂的话)来定制一个子菜单?
答
一下我的这个答案:Getting Zend_Navigation menu to work with jQuery's Fisheye
汇总,您可以为通过网页导航和循环视图,并通过网页的方法来创建自定义标记。据我所知,目前没有类似于导航的装饰器支持。
答
Typeoneerror把我在正确的轨道上,这里是我最后使用的代码:
在layout.phtml:
<?= $this->navigation()->menu()->renderMenu(null,array('maxDepth' => 0)); ?>
<? $this->navigation()->menu()->setPartial('sidemenu.phtml'); ?>
<?= $this->navigation()->menu()->render(); ?>
在sidemenu.phtml:
$this->navigation()->findByResource(
Zend_Controller_Front::getInstance()->getRequest()->module .
Zend_Controller_Front::getInstance()->getRequest()->controller
);
foreach ($this->container as $page) {
if ($page->isVisible() && $this->navigation()->accept($page)) {
if ($page->isActive()) {
echo $page->getLabel();
$subcontainer = $page->getPages();
foreach ($subcontainer as $subpage) {
echo $subpage->getLabel();
}
}
}
}
工作像一个魅力,留下这个作为别人找到答案。