TYPO3 将根页面标记为活动

TYPO3 mark root page as active

在我的 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

}

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

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

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

但这也没有任何效果。

如何将根节点也标记为活动的?

提前致谢

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

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

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

将条件移出嵌套并更正路径,一切正常。

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

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