TypoScript,如果条件为当年[9.5.7]

时间:2019-05-23 09:15:04

标签: if-statement typo3 typoscript typo3-9.x

我有一个带有special = directory的HMENU,我尝试仅选择其中的字段crdate在当年。

我尝试了以下TypoScript,但如果它们是在2018年创建的,它们也会在树中显示所有子页面。

lib.news.jahr = COA
lib.news.jahr{
5 = TEXT
5{
    current = 1
    setCurrent.data = date:U
    setCurrent.wrap = |
    prioriCalc = 1
    strftime = %Y
    wrap = <h3>News&nbsp;|</h3>
}

10 = HMENU
10{
    special = directory
    special.value = 87
    wrap = <ul>|</ul>

    1 = TMENU
    1{
        NO.wrapItemAndSub = <li>|</li>
        NO.if{
            equals.data = date:U
            equals.strftime = %Y
            equals.prioriCalc = 1
            value.data = field:crdate
            value.data.strftime = %Y
        }
    }
}
}

TypoScript必须在最新版本9.5.7中工作

1 个答案:

答案 0 :(得分:0)

菜单项没有。 https://docs.typo3.org/typo3cms/TyposcriptReference/MenuObjects/Tmenuitem/Index.html

使用类似

NO.allStdWrap.if {
  value.field = crdate
  value.strftime = %Y
  equals.data = date:Y
}

但是您必须使用wrapItemAndSub以外的包装,否则会得到空的li标签。

或者您可以使用USERDEF1代替NO和带有PHP函数的itemArrayProcFunc来过滤数组。