Typo3中的嵌套菜单

时间:2014-01-30 12:08:39

标签: navigation typo3 typoscript fluid

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

假设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

在我之前的版本中,静态的父页面和我使用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
  }
}

这是呈现菜单的Fluid模板:

<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>

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

1 个答案:

答案 0 :(得分:2)

在根级别启动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