TYPO3将根页面标记为活动状态

时间:2017-10-25 12:47:37

标签: typo3 typoscript typo3-6.2.x

在我的TYPO3 6.2.31(我知道......)页面中,我有以下导航的标题:

NAVIMAIN = HMENU
NAVIMAIN.entryLevel = 0
#NAVIMAIN.excludeUidList = 

NAVIMAIN {
1 = TMENU
1 {
expAll = 1
wrap = <ul class="sf-menu">|</ul>
noBlur = 1

NO = 1
NO.ATagTitle.field = title
NO.wrapItemAndSub = <li>|</li>  

ACT = 1
ACT.wrapItemAndSub = <li class="active"> |</li>  

 }

2 = TMENU
2 {
expAll = 1
maxItems = 10
wrap = <div class="sf-mega">|</div>
NO = 1
NO {
  ATagTitle.field = title
  wrapItemAndSub = <div class="sf-mega-section">|</div>
  stdWrap.wrap = |
  ATagParams =  class="headermega"
  stdWrap.htmlSpecialChars = 1
  doNotLinkIt = 0
  }
}

3 = TMENU
3 {
expAll = 1
maxItems = 20
wrap = <ul>|</ul>
NO = 1
NO {
  ATagTitle.field = title
  linkWrap = <li>|</li>
}
ACT = 1
ACT {
  wrapItemAndSub = <li>|</li>
  ATagParams =  class="active"
}
}
#4 < .3

}

所有子页面在被点击时都标记为aktive ...但是根节点不是......所以我也添加了这个:

[globalVar = TSFE:id=1]
    NAVIMAIN.alwaysActivePIDlist = 1
[global]

[globalVar = TSFE:id=1]
    NAVIMAIN.alwaysActivePIDlist = 60
[global]

但这并没有任何影响。

如何将根节点标记为活动状态?

提前致谢

2 个答案:

答案 0 :(得分:2)

如果您希望两个页面都处于活动状态,则需要按照自己的方式执行另一个构造,第二个分配将覆盖第一个构造。

[globalVar = TSFE:id=1]
    NAVIMAIN.alwaysActivePIDlist := addToList(1)
[global]

[globalVar = TSFE:id=1]
    NAVIMAIN.alwaysActivePIDlist := addToList(60)
[global]

一般来说,你会加入这两个陈述。

我会考虑另一个改变:使用另一个条件,因为TSFE将在不久的将来过时:

[page:uid = 1]
    NAVIMAIN.alwaysActivePIDlist = 1,60
[global]

答案 1 :(得分:2)

经过一些Teamviewer调查后,我们在Typoscript结构中找到了问题的根源。 [globalVar]条件放在page.20.marks {}内,但条件必须放在任何嵌套之外。

将条件移到嵌套之外并纠正路径,一切正常。

[globalVar = TSFE:id=1]
    page.20.marks.NAVIMAIN.alwaysActivePIDlist = 60
[global]

正如Bernd所说,[page:uid = 1]也是更好的条件。