Silverstripe菜单,子菜单和面包屑

时间:2015-08-28 16:04:36

标签: menu submenu silverstripe breadcrumbs

如何更改默认的Silverstripe主题'Simple',以便在单击子栏目(侧边栏)时,侧边栏菜单将被面包屑替换为$ Breadcrumbs。单击Menu1时的示例,显示侧栏

       Menu1   Menu2    Menu3

Menu1(不可点击,只是标题)   SubMenu1   SubMenu2

但是当单击SubMenu1或SubMenu2时,整个侧边栏消失并显示$ Breadcrumbs。

       Menu1   Menu2    Menu3

菜单1 - > SubMenu1         $内容

因此,当单击Breadcrumb上的Menu1时,它会返回到Menu1。

1 个答案:

答案 0 :(得分:0)

首先,为什么要实现这一目标?我在这里看不到真正的好处,但如果你真的需要这个,那么这可能是一个答案:

1)如果您在$Menu(1)级别只显示$MenuTitle.XML(或只是$Title,它们几乎相同)在侧边栏中

2)否则如果您在$Menu(2)或更深(2)级别显示面包屑

您可以通过检查您当前的级别并显示您需要的内容来实现此目的:

<% if $Menu(1) %>
  <!-- Here you print only titles-->
  <% loop $Menu(1) %>
    <a href="$Link">$MenuTitle.XML</a>
  <% end_loop %>
<% else %>
  <!-- Here you print out the BreadCrumbs, only if you are deeper than 1st level menu -->
  <% include $BreadCrumbs %>
<% end_if %>

在此检查您是否在第一级,然后仅显示包含链接的标题,如果您在子页面,则显示BreadCrumbs