silverstripe中的两个单独菜单

时间:2017-09-08 08:32:16

标签: silverstripe

我最近开始使用SilverStripe。现在我为我的页面做了一个页脚菜单,其中已有左菜单。现在我想让我可以在管理面板中为脚和左菜单制作页面。所以我的想法是在管理面板中创建一个复选框,如果你创建一个新页面并选中复选框页面进入脚菜单,如果留空则然后在左侧菜单中。

我将此代码添加到我的page.php sidetree

 static $db = array( 'menuLocationHorizontal' => "Boolean" );

这是在page.php

中的getCMSFields中
$fields->addFieldToTab('Root.Behaviour', new 
   CheckboxField('menuLocationHorizontal',"Show up in horizontal 
   menu?"),"ShowInSearch");

这就是我的footnav模板的样子

<ul>
    <% control Menu(2) %>    
    <% if menuLocationHorizontal == 1 %> 
        <li><a href="$Link" title="Go to the $Title.XML page" class="$LinkingMode"><span>$MenuTitle.XML</span></a></li>
         <% end_if %>
    <% end_control %>
</ul>

完成此操作后,我只需在脚本菜单中添加一个if语句就可以了。但它崩溃了网站。我使用的版本是3.1。我想它的php会失败。 对不起我的英语,这不是我的母语。

2 个答案:

答案 0 :(得分:0)

SS 3.1不支持

control条目,您正在寻找的是<% loop %>,如下所示:

<ul>
  <% loop Menu(2) %>    
    <% if menuLocationHorizontal == 1 %> 
      <li><a href="$Link" title="Go to the $Title.XML page" class="$LinkingMode"><span>$MenuTitle.XML</span></a></li>
    <% end_if %>
  <% end_loop %>
</ul>

有关Silverstripe docs website的更多信息。

答案 1 :(得分:0)

对我来说答案是这样的 - &gt; https://github.com/i-lateral/silverstripe-custommenus 唯一真正奏效的东西。