Typo3 8.7 Typoscript:带HMENU的导航栏:排除显示层次结构步骤

时间:2018-09-27 09:38:05

标签: typo3 typoscript typo3-8.7.x

我目前正在Typo3 Typoscript中处理导航栏。 我的项目页面结构如下:

root
 1
 1
 1
  2
   3
   3
 1
 1
  2
   3
   3

我现在想要的是排除2(踢他们),但是在选择具有3的孩子作为孩子的1时继续显示所有3。

赞:

   root
     1
     1
     1
      3
      3
     1
     1
      3
      3

我在TypoScript中显示完整页面结构的代码

NAVIOFF = HMENU
    NAVIOFF.entryLevel = 0
    NAVIOFF {
    1 = TMENU
    1 {
    expAll = 1
    wrap = <ul class="sf-menu">|</ul>
    noBlur = 1
    NO = 1
    NO.ATagTitle.field = title
    NO.wrapItemAndSub = <li>|</li>
    IFSUB = 1
    IFSUB < .NO
    IFSUB.ATagParams = class="pfeile"  

     ACT = 1
     ACT < .NO
     ACT.ATagParams = class="menuakt"
     CUR = 1
     CUR < .ACT

    }
    2 < .1  
    2.wrap = <ul>|</ul>
    2.NO.wrapItemAndSub =  <li class="first"> |</li> |*| <li> |</li> |*| <li class="last"> | </li>   
    2.ACT = 0

    3 < .2
    4 < .2
    }

能否实现我想要的? 到目前为止,我偶然发现了excludeUIDlist,但是显然我将完整的2和3附加到了它们。

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以覆盖2.级别的呈现,例如“每个第二级别应该只输出空字符串且不链接”,例如使用

    2.NO.stdWrap.override =  |*| |*|
    2.NO.doNotLinkIt = 1

比起输出[element 2[element3a],[element3b]],您应该得到[nothing[element3a],[element3b]],这似乎是您想要的。

答案 1 :(得分:1)

只需跳过菜单中的第二级:

在第二级不执行任何操作:

//remove:
# 2 < .1
// no rendering:
2.NO.doNotShowLink = 1

当然您不能复制.2。对于进一步的级别,请从.3开始对其进行调整,然后复制级别3:

3 < .1  
3.wrap = <ul>|</ul>
3.NO.wrapItemAndSub =  <li class="first"> |</li> |*| <li> |</li> |*| <li class="last"> | </li>   
3.ACT = 0

4 < .3