有人可以向我解释一下,为什么这个 TypoScript 在 12.4 版本中不再工作了。我从 7.6 进行更新,并认为 treeLevel -> tree.level 是这方面唯一的变化。
这是我的代码:
lib._submenu = HMENU
lib._submenu {
1 = TMENU
1 {
expAll = 1
NO.wrapItemAndSub = <li>|</li>
IFSUB = 1
IFSUB.wrapItemAndSub = <li class="hasSub">|</li>
ACT < .NO
ACT = 1
ACT.wrapItemAndSub = <li class="active">|</li>
ACT.ATagParams = class="active"
ACTIFSUB = 1
ACTIFSUB.wrapItemAndSub = <li class="hasSub active">|</li>
ACTIFSUB.ATagParams = class="active"
SPC = 1
SPC.wrapItemAndSub = <li class="trenner">|</li>
SPC.doNotShowLink = 0
}
stdWrap.ifEmpty.cObject = HMENU
stdWrap.ifEmpty.cObject {
1 = TMENU
1 {
expAll = 1
NO.wrapItemAndSub = <li>|</li>
IFSUB = 1
IFSUB.wrapItemAndSub = <li class="hasSub">|</li>
ACT < .NO
ACT = 1
ACT.wrapItemAndSub = <li class="active">|</li>
ACT.ATagParams = class="active"
ACTIFSUB = 1
ACTIFSUB.wrapItemAndSub = <li class="hasSub active">|</li>
ACTIFSUB.ATagParams = class="active"
SPC = 1
SPC.wrapItemAndSub = <li class="trenner">|</li>
SPC.doNotShowLink = 0
}
}
}
[tree.level == 1]
lib._submenu {
entryLevel = 1
}
[END]
[tree.level == 2]
lib._submenu {
entryLevel = 2
stdWrap.ifEmpty.cObject = HMENU
stdWrap.ifEmpty.cObject {
entryLevel = 1
}
}
[END]
[tree.level == 3]
lib._submenu {
entryLevel = 3
stdWrap.ifEmpty.cObject = HMENU
stdWrap.ifEmpty.cObject {
entryLevel = 2
}
}
[END]
[tree.level == 4]
lib._submenu {
entryLevel = 4
stdWrap.ifEmpty.cObject = HMENU
stdWrap.ifEmpty.cObject {
entryLevel = 3
}
}
[END]
过去一周我一直在寻找解决方案,但似乎没有人做过这样的菜单。它应该显示当前级别的页面,但是当没有时,它应该显示上一级别的项目。
入门级别与菜单实际开始的级别无关,而是与菜单可见的级别有关。因此,即使使用以前版本的 TYPO3 CMS,代码也不应按预期工作。
你真正想要的似乎是这样的:
10 = HMENU
10 {
special = directory
special.data = leveluid: -1
}