Typo3 打字稿:在2级导航中获得1级标题

Typo3 打字稿:在2级导航中获得1级标题,typo3,typoscript,Typo3,Typoscript,我需要创建一个菜单,其中,出于移动目的,在所有级别2的条目之前有级别1的标题。示例:我的结构如下所示: 团队 马克斯 塞普 计划 项目1 项目2 现在,我希望我的导航如下所示: 团队 团队 马克斯 塞普 项目 计划 项目1 项目2 您想要的是TYPO3菜单的默认行为。您只需要设置正确的包装。在其所属位置进行包装: temp.menu = HMENU temp.menu { 1 = TMENU 1 { expAll = 1

我需要创建一个菜单,其中,出于移动目的,在所有级别2的条目之前有级别1的标题。示例:我的结构如下所示:

  • 团队
    • 马克斯
    • 塞普
  • 计划
    • 项目1
    • 项目2
现在,我希望我的导航如下所示:

  • 团队
    • 团队
    • 马克斯
    • 塞普
  • 项目
    • 计划
    • 项目1
    • 项目2

您想要的是TYPO3菜单的默认行为。您只需要设置正确的包装。在其所属位置进行包装:

temp.menu = HMENU
temp.menu {
    1 = TMENU
    1 {
        expAll = 1
        wrap = <ul>|</ul>
        NO = 1
        NO {
            wrapItemAndSub = <li>|</li>
        }
    }
    // as you have no specific wrapping all levels can be generated the same:
    2 < .1
    3 < .2
}
temp.menu=HMENU
临时菜单{
1=t菜单
1 {
expAll=1
包裹=
    |
否=1 没有{ wrapItemAndSub=
  • |
  • } } //由于没有特定的换行,因此可以生成相同的所有级别: 2 < .1 3 < .2 }
    如果希望在每个级别上使用特定的换行,可以在复制后对其进行调整(在本例中,您可以看到换行的来源)

    temp.menu=HMENU
    临时菜单{
    1=t菜单
    1 {
    包裹=
      否=1 没有{ wrapItemAndSub=
    • |
    • } } 2 < .1 2 { 包裹=
        否.wrapItemAndSub=
      • |
      • } 3 < .2 3 { 包裹=
          否.wrapItemAndSub=
        • |
        • } }


          编辑:问题澄清后:
          在菜单中使用LOADREGISTER会导致混乱,因为菜单项不是内联递归生成的

          如果要重复菜单项,应就地生成该菜单项。
          因此,您需要拆分干净的包装,并使用soem增强的菜单魔术

          temp.menu = HMENU
          temp.menu {
              1 = TMENU
              1 {
                  wrap = <ul class="level1">|</ul>
                  NO = 1
                  NO.wrapItemAndSub = <li>|</li>
          
                  // only for menuitems which contains further pages:
                  IFSUB < .NO
                  IFSUB {
                      // beginning the part of the submenu
                      after.cObject = TEXT
                      after.cObject {
                          field = nav_title // title
                          wrap = <div class="dropdown-menu"><ul><li>|</li>
                      }
                  }
              }
              2 < .1
              2 {
                  // no beginning in wrap needed as it is done at level 1
                  wrap = |</ul></div>
              }
          }
          
          temp.menu=HMENU
          临时菜单{
          1=t菜单
          1 {
          包裹=
            否=1 否。wrapItemAndSub=
          • |
          • //仅适用于包含更多页面的菜单项: 国际单项体育联合会 IFSUB{ //开始子菜单的一部分 after.cObject=TEXT 在cObject之后{ 字段=导航标题//标题 包裹=
            • |
            • } } } 2 < .1 2 { //不需要在包装中开始,因为它是在级别1中完成的 包裹=|
            } }
            进一步的级别需要额外处理。e、 g.:
            2.IFSUB>
            3.wrap=


              注意:如果您想要一个带有标识的干净html,您需要在打字脚本中使用
              .noTrimWrap
              和多行值。

              我似乎过度简化了所需的结构-我需要在子导航ul中有一个带有父名称的列表项。我编辑了原始条目以澄清答案,非常感谢!这正是我所需要的!
              temp.menu = HMENU
              temp.menu {
                  1 = TMENU
                  1 {
                      wrap = <ul class="level1">|</ul>
                      NO = 1
                      NO.wrapItemAndSub = <li>|</li>
              
                      // only for menuitems which contains further pages:
                      IFSUB < .NO
                      IFSUB {
                          // beginning the part of the submenu
                          after.cObject = TEXT
                          after.cObject {
                              field = nav_title // title
                              wrap = <div class="dropdown-menu"><ul><li>|</li>
                          }
                      }
                  }
                  2 < .1
                  2 {
                      // no beginning in wrap needed as it is done at level 1
                      wrap = |</ul></div>
                  }
              }