【问题标题】:Custom Navigation Menu in SilverstripeSilverstripe 中的自定义导航菜单
【发布时间】:2015-11-08 20:15:59
【问题描述】:

我今天正在学习 Silverstripe CMS,遇到了一个我找不到答案的问题。

我有一个 CSS 驱动的下拉菜单,其中包含三个主要标题。标题本身不是链接,但孩子是。

我遇到的问题是我阅读菜单的方式是从页面层次结构中生成的。我的主菜单标题不是页面,那么我该如何开始,然后在每个标题下放置正确的页面链接?

我正在使用此代码动态生成菜单

<nav class="seven columns u-right-align main-nav">
      <ul style="position: relative; z-index: 10000">
                <% loop $Menu(1) %>
                    <li>$MenuTitle
                     <% if $LinkOrSection == section %>
                        <% if $Children %>
                              <ul>
                                 <% loop $Children %>
                                     <li><a href="$Link">$MenuTitle</a></li>
                                 <% end_loop %>
                             </ul>
                        <% end_if %>
                   <% end_if %>
               </li>
            <% end_loop %>
        </ul>
  </nav>

预期布局...

<nav class="seven columns u-right-align main-nav">
    <ul style="position: relative; z-index: 10000">
        <li>About <!--  I do not know where to create this title in SS -->
            <ul>
                <li><a href="">Annual Meeting</a></li>
                <li><a href="">History</a></li>
                <li><a href="">Society Calendar</a></li>
            </ul>
        </li>
    </ul>
</nav>

【问题讨论】:

    标签: navigation silverstripe


    【解决方案1】:

    好吧,因为您不知道将“关于”部分标题放在哪里 - 默认情况下,这不是在 SilverStripe 中内置的。您必须为其添加一个“RedirectorPage”并重定向到第一个 Child。

    还好其他人也有这个问题,还有some page types that do the trick for you

    您可以重复使用已有的模板。

    上面链接的页面类型在Controller的init()方法中具有重定向到第一个孩子的功能,这很容易:

    function  init() {
        parent::init();
    
        if($this->Children()->Count()){
            Controller::redirect($this->Children()->First()->AbsoluteLink());
        }
    }
    

    因此,如果您使用默认 RedirectorPage 手动重定向,或者您想要更高级的东西,这取决于您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      相关资源
      最近更新 更多