#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 на синтаксис нового условия.