Menu Silverstripe菜单、子菜单和面包屑

Menu Silverstripe菜单、子菜单和面包屑,menu,submenu,silverstripe,breadcrumbs,Menu,Submenu,Silverstripe,Breadcrumbs,如何更改默认的Silverstripe主题“Simple”,以便在单击某个子菜单(位于侧边栏上)时,侧边栏菜单被通过$Breadcrumbs的breadcrumb替换。示例单击菜单1时,将显示侧栏 Menu1 Menu2 Menu3 菜单1(不可点击,只是标题) 子菜单1 子菜单2 但当单击子菜单1或子菜单2时,整个侧边栏将消失,并显示$Breadcrumbs Menu1 Menu2 Menu3 菜单1-->子菜单1 $Content 因此,当

如何更改默认的Silverstripe主题“Simple”,以便在单击某个子菜单(位于侧边栏上)时,侧边栏菜单被通过$Breadcrumbs的breadcrumb替换。示例单击菜单1时,将显示侧栏

       Menu1   Menu2    Menu3
菜单1(不可点击,只是标题) 子菜单1 子菜单2

但当单击子菜单1或子菜单2时,整个侧边栏将消失,并显示$Breadcrumbs

       Menu1   Menu2    Menu3
菜单1-->子菜单1 $Content


因此,当单击面包屑上的菜单1时,它会返回到菜单1。

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

1) 如果您处于
$菜单(1)
级别,则在侧边栏中仅显示
$MenuTitle.XML
(或仅显示
$Title
,它们几乎相同)

2) 否则,如果您在
$菜单(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