【问题标题】:Nested menu in Typo3Typo3 中的嵌套菜单
【发布时间】:2014-02-22 17:38:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: navigation typo3 typoscript fluid


    【解决方案1】:

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

    【讨论】:

    • 删除第 2 行中的错字时,除了两个小细节外,它可以正常工作。 1.) 父母在nav-stacked 包装之外 2.) 他们没有分配nav-caption 类(如在我的HTML sn-p 中)
    • 另外,整个垂直“块”链接将被包裹在 active 类中,而不仅仅是链接
    • 稍微调整一下配置。在上面的 Typoscript 中,我们说:“像当前活动页面 (CUR) 一样处理活动根行 (ACT) 中的所有页面,并针对两个深度 (2
    • 我在 尝试了文档之后来到了 stackoverflow。无论如何,我解决了活动状态,但我不知道如何区别对待父项。我尝试使用 CSS 解决它,但是在 IE8 上我仍然有问题,所以我真的更喜欢向父项添加一个类。
    猜你喜欢
    • 2019-02-24
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多