【发布时间】:2024-05-20 16:00:02
【问题描述】:
我已经发布了对我的问题的修改。在处理它时,我注意到这个问题很容易简化。 我需要我的子菜单的自定义格式,所以我必须使用部分。但是问题就来了。
以下代码显示了错误级别 (0):
echo $this->navigation()->menu()
->setMinDepth(1)
->setMaxDepth(1)
->setRenderParents(false)
->setOnlyActiveBranch(true)
->renderPartial(null, array('partials/menu.phtml', 'default'));
以下代码显示了正确的菜单级别 (1)
echo $this->navigation()->menu()
->setMinDepth(1)
->setMaxDepth(1)
->setRenderParents(false)
->setOnlyActiveBranch(true)
->render();
有什么想法吗?伙计们请。我将不胜感激!
编辑
我的部分/menu.phtml:
foreach ($this->container as $page)
{
$active = $page->isActive();
echo '<div class="item">';
echo '<a class="'. ($active ? 'active' : '') .'" href="' . $this->baseUrl($page->getHref()) . '">' . $page->getLabel() . '</a>';
echo '</div>';
}
编辑 2
我对 Zend_Navigation 的理解是,先准备容器,再通过部分。
$nav = $this->navigation()->menu()->setOnlyActiveBranch(true)->getContainer();
echo $this->navigation()->menu()->renderPartial($nav, array('/partials/menu.phtml', 'default'));
在容器中设置set{Min/Max}Depth, parentRendering的意义何在?
【问题讨论】:
-
你的部分实际上是做什么的?菜单助手的所有这些选项实际上并没有传递给部分,你只是得到导航容器。
-
Partial 完成所有的格式化。我不能使用 UL 标记,需要自定义 html 标记。我认为 partial 只是更改 minDepth、maxDepth、renderParents 等渲染的步骤。有什么想法可以组合它吗?我发布了部分示例。
标签: zend-framework zend-navigation