编辑: 在你开始之前,请考虑在我的原始帖子中,我用来说明问题的条件令人困惑。我现在用###标记它。这只是为了表明我需要像解决方案一样的if条件。但是,使用方括号[]的if条件在typoscript中的那个点上不起作用。请参阅下面的解决方案,它使用override.if。这很好用!
在使用typoscript创建的tmenu中,我想根据所属页面的标题以不同方式包装这些项目。我使用Foundation作为元素的宽度,因此classe large-4。现在基本包装(wrapitemandsub)没有问题,但是有一个页面标题更长,我需要使用类big-8。在下面的代码中,我编写了一个带有无效表达式的条件,只是为了演示它应该如何表现。
这是导航的脚本:
lib.content_menu = COA
lib.content_menu {
1 = HMENU
1 {
entryLevel = 0
1 = TMENU
1 {
expAll = 1
NO {
### [current pagetitle == somevalue]
wrapItemAndSub = <li class="columns small-8 large-8 active">|</li>wrap
### [ELSE]
wrapItemAndSub = <li class="columns small-4 large-4">|</li>
### [END]
}
ACT = 1
ACT {
wrapItemAndSub = <li class="columns small-4 large-4 active">|</li>
}
CUR = 1
CUR < .ACT
IFSUB = 1
IFSUB {
ATagParams = onclick='return false;'
wrapItemAndSub = <li class="columns small-4 large-4">|</li>
}
ACTIFSUB = 1
ACTIFSUB {
ATagParams = onclick='return false;'
wrapItemAndSub = <li class="columns small-4 large-4 active">|</li>
}
CURIFSUB = 1
CURIFSUB < .ACTIFSUB
}
2 = TMENU
2 {
wrap = <ul class="menu vertical">|</ul>
NO {
wrapItemAndSub = <li>|</li>
}
CUR = 1
CUR {
wrapItemAndSub = <li class="active">|</li>
}
}
}
}
任何人都可以帮我这个吗? :)
答案 0 :(得分:1)
在您的上下文中,您可以使用.if或.override - 在TSRef中找到有关它们的更多信息: https://docs.typo3.org/typo3cms/TyposcriptReference/Functions/If/Index.html https://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Stdwrap/Index.html#override
试试这样:
wrapItemAndSub = <li class="columns small-4 large-4">|</li>
wrapItemAndSub.override = <li class="columns small-8 large-8 active">|</li>
wrapItemAndSub.override.if.value = titletocheck
wrapItemAndSub.override.if.equals.field = title