【问题标题】:SilverStripe 3.4+ How to show child pages in the menu from every level 1 page?SilverStripe 3.4+ 如何在每个 1 级页面的菜单中显示子页面?
【发布时间】:2017-01-24 15:21:58
【问题描述】:

我正在尝试构建一个菜单,在同一导航栏上显示 1 级菜单和 2 级菜单。这是因为第 1 页的所有子项都需要在顶级菜单中。我可以通过在导航中循环 menu(2) 轻松地做到这一点,但这只会在您位于父页面时显示这些页面。

    <% loop $Menu(2) %>
            <li class="$LinkingMode"><a href="$Link" title="$Title.XML">$MenuTitle.XML</a></li>
        <% end_loop %>
    <% loop $Menu(1) %>
        <li class="$LinkingMode"><a href="$Link" title="$Title.XML">$MenuTitle.XML</a></li>
    <% end_loop %>

【问题讨论】:

    标签: templates navigation silverstripe


    【解决方案1】:

    您可以使用 $Children 循环菜单的子项

    如果你只想要所有子页面的整个列表,你可以循环 menu1 并且不渲染它,只返回子页面:

    <% loop $Menu(1) %>
        <% loop $Children %>
            <li class="$LinkingMode"><a href="$Link" title="$Title.XML">$MenuTitle.XML</a></li>
        <% end_loop %>
    <% end_loop %>
    

    如果您希望它们在每个的 li 中,您可以在其中类似地添加它们:

    <% loop $Menu(1) %>
        <li class="$LinkingMode"><a href="$Link" title="$Title.XML">$MenuTitle.XML</a>
            <% if $Children %>
                <ul>
                <% loop $Children %>
                    <li class="$LinkingMode"><a href="$Link" title="$Title.XML">$MenuTitle.XML</a></li>
                <% end_loop %>
                </ul>
            <% end_if %>
        </li>
    <% end_loop %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-23
      • 2017-02-08
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多