typo3中的嵌套菜单



我想创建一个复杂的菜单(水平&垂直),以复制我的网站的结构。

假设我在Typo3中的页面结构看起来像这样:

<root>
-FIRST
--child
--child
--child
-SECOND
--child
--child
--child
-THIRD
--child
--child
--child

然后,菜单看起来像这样:

FIRST    SECOND    THIRD 
child    child     child
child    child     child
child    child     child

在我以前的版本中,我和static使用Typoscript为孩子创建菜单的父母页面。由于我不知道更好,因此每个显示的菜单都有自己的代码,看起来像这样:

lib.menuChildren = HMENU
lib.menuChildrenl{
  special = directory
  special.value = {$nav.first}
  1 = TMENU
  1 {
    expAll = 1
    NO = 1
    NO {
      wrapItemAndSub = <li>|</li>
      stdWrap.htmlSpecialChars = 1
      ATagTitle.field = title
    }
    ACT < .NO
    ACT.wrapItemAndSub = <li class="active">|</li>
    CUR < .ACT
    CUR.doNotLinkIt = 1
  }
}

这是渲染菜单的流体模板:

<ul class="nav nav-default">
  <li>
    <ul class="nav nav-stacked">
      <li class="nav-caption">FIRST</li>
      <f:cObject typoscriptObjectPath="lib.childrenFirst" />
    </ul>
  </li>
  <li>
    <ul class="nav nav-stacked">
      <li class="nav-caption">SECOND</li>
      <f:cObject typoscriptObjectPath="lib.childrenSecond" />
    </ul>
  </li>
  <li>
    <ul class="nav nav-stacked">
      <li class="nav-caption">THIRD</li>
      <f:cObject typoscriptObjectPath="lib.childrenThird" />
    </ul>
  </li>
</ul>

为了避免过硬编码的父母,我想动态创建整个菜单。如何实现?

从根级启动您的hmenu,然后在hmenu(2 = tmenu)中添加一个深度。这样的东西(根据您的要求调整HTML):

lib.menuChildren = HMENU
lib.menuChildrenl{
  special = directory
  special.value = {$root}
  wrap = <ul class="nav nav-default">|</ul>
  1 = TMENU
  1 {
    expAll = 1
    NO = 1
    NO {
      wrapItemAndSub = <li>|</li>
      stdWrap.htmlSpecialChars = 1
      ATagTitle.field = title
    }
    ACT < .NO
    ACT.wrapItemAndSub = <li class="active">|</li>
    CUR < .ACT
    CUR.doNotLinkIt = 1
  }
  2 < .1
  2.wrap = <ul class="nav nav-stacked">|</ul>
}

要使外观垂直/必须使用CSS。

http://docs.typo3.org/typo3cms/typoscriptreference/menuobjects/index.html

相关内容

  • 没有找到相关文章

最新更新