TypoScript applicationContext условие с подстановочными знаками или подконтекстами невозможно - PullRequest
0 голосов
/ 22 ноября 2018

Поскольку TYPO3 9.5 LTS предлагает использовать язык выражений Symfony для условий TypoScript.

У меня возникли некоторые проблемы при их миграции:

Старый синтаксис:

// Matches any applicationContext with a rootContext of "Production", for example "Production/Live" or "Production/Staging":
[applicationContext = Development*]

// Matches any applicationContext starting with "Production/Dev"
[applicationContext = /^Production\/Dev/]

на новый язык выражений:

Я безуспешно пробовал следующее:

[applicationContext == "/^Development\/Docker/"]

[applicationContext == "Development*"]

[applicationContext == "Development/*"]

Я не нашел ни одногоПримеры.Я не уверен, если тесты для условий уже основаны на языке выражений.(https://review.typo3.org/#/c/57787/)

Было бы неплохо, если бы у кого-нибудь был совет, как использовать эту функцию для добавления условий, как до

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Следующее условие соответствует любому applicationContext, начинающемуся с "Production/Dev"

[applicationContext matches '/^Production\\\\\\\\/Dev/']

Почему так много обратной косой черты? Обратная косая черта (\) должна быть экранирована4 обратные косые черты (\\\\) в строке и 8 обратных косых черт (\\\\\\\\) в регулярном выражении на языке выражений Symfony

( Язык выражений Symfony служит основой дляУсловия TypoScript начиная с TYPO3 9 LTS)

0 голосов
/ 28 февраля 2019

В TYPO3 9 вы можете сделать [applicationContext = Development/*]

0 голосов
/ 22 ноября 2018

Вам необходимо использовать оператор сравнения matches языка выражений Symfony.Таким образом, вы можете использовать регулярные выражения для частичных совпадений:

[applicationContext matches "/^Development/"]

Это будет соответствовать любому Development контексту.

...