TypoScript if условие с полем crdate в текущем году [9.5.7] - PullRequest
0 голосов
/ 23 мая 2019

У меня есть HMENU с special = directory, и я пытаюсь выбрать только эти, которыми является поле 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 голосов
/ 23 мая 2019

Пункт меню не имеет if. 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 и itemArrayProcFunc с функцией PHP для фильтрации массива.

...