我最近开始使用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会失败。 对不起我的英语,这不是我的母语。
答案 0 :(得分:0)
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 唯一真正奏效的东西。