Zend导航/菜单

时间:2011-06-11 02:34:47

标签: zend-framework

我试图找出跟踪我正在进行的网站导航的最佳方式。

我已经使用Zend Navigation渲染带有下拉子菜单的顶级菜单。这很好用。但是我还想跟踪我的菜单项,这些菜单项直接应用于上面菜单显示的单个项目/模型。比如我的菜单。

<nav>
  <job>
     <label>Jobs</label>
     <resource>job</resource>
     <controller>job</controller>
     <action>list</action>
     <pages>
        .....
     </pages>
  <job>
</nav>

这适用于处理不与数据库中特定记录相关的“菜单”。可以跟踪对各个记录执行的“操作”。这些额外的项目不应该在主导航内呈现,因为它们只有具有特定ID的上下文,但在查看记录时可以呈现为菜单。

所以也许喜欢:

<nav>
   <resource>
     <menu items to be rendered without specific context>
       <possible submenu items>
       </possible submenu items>
     </menu items to be rendered without specific context>
     <menu items to be rendered inside a specific context(like viewings a record)>
        <view></view>
        <edit></edit>
        <invoice></invoice>
     </menu items to be rendered inside a specific context(like viewings a record)>
   </resource>
</nav>

我以为我可以为我的特定于上下文的菜单项设置一个单独的.xml,但我希望将这些资源组合在一起。

1 个答案:

答案 0 :(得分:0)

所以你想要一个下钻菜单?你可以用CSS轻松完成。示例:(我更喜欢数组,但您可以调整)。

像往常一样创建导航,但要确保为每个操作设置子项:

$menu = array(
    array(
        'label' => 'Add Booking',
        'module' => 'booking',
        'controller' => 'admin',
        'action' => 'addBooking',
        'route' => 'default',
        'pages'=>array(
            array(
                'label'=>'test',
                'module' => 'booking',
                'controller' => 'admin',
                'action' => 'anotheraction',
            )
        )
    )
);

CSS:

ul.navigation li ul li {
    display:none;
}
ul.navigation li.active ul li {
    display: block;
}

只要正确设置父页面的参数,它就可以正常工作。