Typoscript: как выбрать набор подстраниц или как создать условие на основе идентификатора страницы

#select #typo3 #conditional-statements #typoscript

#выберите #typo3 #условные операторы #typoscript

Вопрос:

В настоящее время я работаю с. PIDinRootline Это работает нормально.

 [PIDinRootline=8,9]
    //do something
[end]

[PIDinRootline=6,7,11]
    //do something
[end]
 

Теперь я хочу обратиться к набору подстраниц под 7. В настоящее время все страницы, на которых родительский элемент имеет идентификатор 7, имеют один и тот же код. Но теперь я хочу что-то другое для страницы с идентификатором 128 и всех ее подстраниц. Разрешено ли создавать что-то вроде

 [PIDinRootline=8,9]
    //do something
[end]

[PIDinRootline=6,7,11]
    //do something different
[end]
[PIDinRootline=128]
    //do something
[end]
 

Итак, страница 128 находится под 7. Настройка перезаписывается, потому что сначала выполняются настройки из PIDinRootline= 7, а затем настройки из PIDinRootline = 128. Разрешено ли это?

Ответ №1:

Определенно разрешено. Просто убедитесь, что вы определяете условия в том же порядке, что и в кавычках. На самом деле вы можете не учитывать некоторые [end] условия. Примечание: Это работает для TYPO3 до версии 8 / 9.3:

 [PIDinRootline=8,9]
    //do something
[PIDinRootline=6,7,11]
    //do something different
[PIDinRootline=128]
    //do something
[end]
 

Старый синтаксис условия устарел с TYPO3 9.4. Новый синтаксис основан на языке выражений symfony и выглядит следующим образом:

 [8 in tree.rootLineIds || 9 in tree.rootLineIds]
    //do something
[6 in tree.rootLineIds || 7 in tree.rootLineIds || 11 in tree.rootLineIds]
    //do something different
[128 in tree.rootLineIds]
    //do something
[end]
 

Другие полезные условия, связанные со страницей (старый синтаксис):

  • [globalVar = TSFE:id = 128] // Только для PID 128
  • [PIDupinRootline = 128] // Только на подстраницах с PID 128 (PID 128 не включен)
  • [treeLevel = 1] // Все страницы, принадлежащие уровню дерева 1 (подстраницы корневого уровня)

Проверьте ссылку TYPO3 на синтаксис нового условия.