如何在Zend中进行水平导航?

时间:2011-10-27 03:52:07

标签: zend-framework

使用Zend,我想创建一个像:

这样的导航
<ul class="navigation">
    <li>
        <a href="/coupon/index/all"></a>    
    </li>   
    <li>
        <a href="/coupon/index/most-popuplar">Most Popular</a>
    </li>
    <li>
        <a href="/coupon/index/most-recent">Most Recent</a>
    </li>
    <li>
        <a href="/coupon/index/ending-soon">Ending Soon</a>
    </li>
</ul>

但是当我使用Zend Navigation和下面的配置时:

<?xml version="1.0" encoding="UTF-8"?>
<configdata>
    <nav>
        <label>All</label>
        <module>coupon</module>
        <controller>index</controller>
        <action>all</action>
        <pages>
            <popuplar>
                <label>Most Popular</label>
                <module>coupon</module>
                <controller>index</controller>
                <action>most-popuplar</action>
            </popuplar>
            <recent>
                <label>Most Recent</label>
                <module>coupon</module>
                <controller>index</controller>
                <action>most-recent</action>
            </recent>
            <ending>
                <label>Ending Soon</label>
                <module>coupon</module>
                <controller>index</controller>
                <action>ending-soon</action>
            </ending>
        </pages>
    </nav>
</configdata>

结果总是:

<ul class="navigation">
    <li>
        <a href="/coupon/index/all"></a>
        <ul>
            <li>
                <a href="/coupon/index/most-popuplar">Most Popular</a>
            </li>
            <li>
                <a href="/coupon/index/most-recent">Most Recent</a>
            </li>
            <li>
                <a href="/coupon/index/ending-soon">Ending Soon</a>
            </li>
        </ul>
    </li>
</ul>
  

所以,我知道我的配置错了,但我不知道如何让它变得正确。请你帮助我好吗。非常感谢。

2 个答案:

答案 0 :(得分:1)

我认为解决此问题的唯一方法是将allAction移到页面节点中。这就是应该的结构方式,因为你没有使用indexAction。您已将allAction放在indexAction所在的位置。

如果您没有indexAction,您也应该在XML导航配置中忽略它。这至少可以让你更接近你正在寻找的东西。

,如果您希望将此配置用于一般用途,则应立即将indexAction添加到allAction,然后执行某些操作在你的布局或其他视图(或任何地方)中这样:

<?php echo $this->navigation()->menu()->setMinDepth(1); ?>

然后在你的css文件中:

.navigation ul li {
    display: inline;
}

答案 1 :(得分:0)

只需将页面移出<pages>标记,然后将“所有”操作页面放在自己的标记中。

如果您仅使用导航对象的导航配置,您或多或少可以自由地以任何您喜欢的方式构建它。