Jos*_*atz 1 typo3 typoscript typo3-9.x
由于 TYPO3 9.5 LTS 建议对 TypoScript 条件使用 Symfony 表达式语言。
旧语法:
// 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/]
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但没有成功:
[applicationContext == "/^Development\/Docker/"]
[applicationContext == "Development*"]
[applicationContext == "Development/*"]
Run Code Online (Sandbox Code Playgroud)
我没有找到任何例子。我不确定条件测试是否已经基于表达式语言。( https://review.typo3.org/#/c/57787/ )
如果有人建议如何使用该功能像以前一样添加条件,那就太好了
Production/Dev”开头的 applicationContext[applicationContext matches '/^Production\\\\\\\\/Dev/']
Run Code Online (Sandbox Code Playgroud)
为什么有这么多反斜杠?在 Symfony 表达式语言中,反斜杠 (
\) 必须由\\\\字符串中的 4 个反斜杠 ( ) 和正则表达式中的 8 个反斜杠 ( ) 转义\\\\\\\\(自 TYPO3 9 LTS 起, Symfony 表达式语言充当 TypoScript 条件的基础)
编辑 2020-02:使用不同的正则表达式分隔符可以使 TYPO3 中的 applicationContext 条件的可读性更好:
/我们可以使用正则#表达式分隔符来代替。这里有些例子:
Development”applicationContext[applicationContext matches "#^Development#"]
Run Code Online (Sandbox Code Playgroud)
Production/Dev匹配以“ ”开头的applicationContext[applicationContext matches "#^Production/Dev#"]
Run Code Online (Sandbox Code Playgroud)
Production/Dev匹配以“或Production/Staging”开头的applicationContext[applicationContext matches "#^Production/(Dev|Staging)#"]
Run Code Online (Sandbox Code Playgroud)
Production/Live[applicationContext matches "#^Production/Live#"]
Run Code Online (Sandbox Code Playgroud)
Production/Live和活动的 TYPO3 后端用户会话[applicationContext matches "#^Production/Live#" && getTSFE().isBackendUserLoggedIn()]
Run Code Online (Sandbox Code Playgroud)
Production”开头的任何 applicationContext[not (applicationContext matches "#Production#")]
Run Code Online (Sandbox Code Playgroud)
Production/Live/ClusterServer1”完全匹配[applicationContext == "Production/Live/ClusterServer1"]
Run Code Online (Sandbox Code Playgroud)
您需要使用Symfony 表达式语言的matches比较运算符。通过这种方式,您可以使用正则表达式进行部分匹配:
[applicationContext matches "/^Development/"]
Run Code Online (Sandbox Code Playgroud)
这将匹配任何Development上下文。
| 归档时间: |
|
| 查看次数: |
755 次 |
| 最近记录: |