TypoScript applicationContext condition with wildcards or sub-contexts not possible
Since TYPO3 9.5 LTS suggests to use the Symfony Expression Language for TypoScript conditions.
I have some troubles migrating them:
Old Syntax:
// 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/]
to the new expression language:
I've tried the following without success:
[applicationContext == "/^Development/Docker/"]
[applicationContext == "Development*"]
[applicationContext == "Development/*"]
I didn't found any examples. I'm not sure, if the tests for conditions are already based on the expression language. (https://review.typo3.org/#/c/57787/)
Would be nice if someone has an advice how to use the feature to add conditions like before
typo3 typoscript typo3-9.x
add a comment |
Since TYPO3 9.5 LTS suggests to use the Symfony Expression Language for TypoScript conditions.
I have some troubles migrating them:
Old Syntax:
// 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/]
to the new expression language:
I've tried the following without success:
[applicationContext == "/^Development/Docker/"]
[applicationContext == "Development*"]
[applicationContext == "Development/*"]
I didn't found any examples. I'm not sure, if the tests for conditions are already based on the expression language. (https://review.typo3.org/#/c/57787/)
Would be nice if someone has an advice how to use the feature to add conditions like before
typo3 typoscript typo3-9.x
1
Does The Expression Syntax help?
– Mathias Brodala
Nov 22 at 11:38
1
Thanks @MathiasBrodala for the hint. With you info, the following can be done:[applicationContext matches "/^Development/"]
which matches when the actual Context isDevelopment/Docker
– Josef Glatz
Nov 22 at 12:14
add a comment |
Since TYPO3 9.5 LTS suggests to use the Symfony Expression Language for TypoScript conditions.
I have some troubles migrating them:
Old Syntax:
// 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/]
to the new expression language:
I've tried the following without success:
[applicationContext == "/^Development/Docker/"]
[applicationContext == "Development*"]
[applicationContext == "Development/*"]
I didn't found any examples. I'm not sure, if the tests for conditions are already based on the expression language. (https://review.typo3.org/#/c/57787/)
Would be nice if someone has an advice how to use the feature to add conditions like before
typo3 typoscript typo3-9.x
Since TYPO3 9.5 LTS suggests to use the Symfony Expression Language for TypoScript conditions.
I have some troubles migrating them:
Old Syntax:
// 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/]
to the new expression language:
I've tried the following without success:
[applicationContext == "/^Development/Docker/"]
[applicationContext == "Development*"]
[applicationContext == "Development/*"]
I didn't found any examples. I'm not sure, if the tests for conditions are already based on the expression language. (https://review.typo3.org/#/c/57787/)
Would be nice if someone has an advice how to use the feature to add conditions like before
typo3 typoscript typo3-9.x
typo3 typoscript typo3-9.x
edited Dec 5 at 5:34
asked Nov 22 at 11:28
Josef Glatz
18111
18111
1
Does The Expression Syntax help?
– Mathias Brodala
Nov 22 at 11:38
1
Thanks @MathiasBrodala for the hint. With you info, the following can be done:[applicationContext matches "/^Development/"]
which matches when the actual Context isDevelopment/Docker
– Josef Glatz
Nov 22 at 12:14
add a comment |
1
Does The Expression Syntax help?
– Mathias Brodala
Nov 22 at 11:38
1
Thanks @MathiasBrodala for the hint. With you info, the following can be done:[applicationContext matches "/^Development/"]
which matches when the actual Context isDevelopment/Docker
– Josef Glatz
Nov 22 at 12:14
1
1
Does The Expression Syntax help?
– Mathias Brodala
Nov 22 at 11:38
Does The Expression Syntax help?
– Mathias Brodala
Nov 22 at 11:38
1
1
Thanks @MathiasBrodala for the hint. With you info, the following can be done:
[applicationContext matches "/^Development/"]
which matches when the actual Context is Development/Docker
– Josef Glatz
Nov 22 at 12:14
Thanks @MathiasBrodala for the hint. With you info, the following can be done:
[applicationContext matches "/^Development/"]
which matches when the actual Context is Development/Docker
– Josef Glatz
Nov 22 at 12:14
add a comment |
2 Answers
2
active
oldest
votes
You need to use the matches
comparison operator of the Symfony Expression Language. This way you can use regular expressions for partial matches:
[applicationContext matches "/^Development/"]
This will match any Development
context.
add a comment |
The following condition matches any applicationContext starting with "Production/Dev
"
[applicationContext matches '/^Production\\\\/Dev/']
Why so many backslashes? A backslash (
) must be escaped by 4 backslashes (
\\
) in a string and 8 backslashes (\\\\
) in a regex in the Symfony Expression Language
(Symfony Expression Language acts as the base for TypoScript conditions since TYPO3 9 LTS)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53429969%2ftyposcript-applicationcontext-condition-with-wildcards-or-sub-contexts-not-possi%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You need to use the matches
comparison operator of the Symfony Expression Language. This way you can use regular expressions for partial matches:
[applicationContext matches "/^Development/"]
This will match any Development
context.
add a comment |
You need to use the matches
comparison operator of the Symfony Expression Language. This way you can use regular expressions for partial matches:
[applicationContext matches "/^Development/"]
This will match any Development
context.
add a comment |
You need to use the matches
comparison operator of the Symfony Expression Language. This way you can use regular expressions for partial matches:
[applicationContext matches "/^Development/"]
This will match any Development
context.
You need to use the matches
comparison operator of the Symfony Expression Language. This way you can use regular expressions for partial matches:
[applicationContext matches "/^Development/"]
This will match any Development
context.
answered Nov 22 at 12:23
Mathias Brodala
2,432215
2,432215
add a comment |
add a comment |
The following condition matches any applicationContext starting with "Production/Dev
"
[applicationContext matches '/^Production\\\\/Dev/']
Why so many backslashes? A backslash (
) must be escaped by 4 backslashes (
\\
) in a string and 8 backslashes (\\\\
) in a regex in the Symfony Expression Language
(Symfony Expression Language acts as the base for TypoScript conditions since TYPO3 9 LTS)
add a comment |
The following condition matches any applicationContext starting with "Production/Dev
"
[applicationContext matches '/^Production\\\\/Dev/']
Why so many backslashes? A backslash (
) must be escaped by 4 backslashes (
\\
) in a string and 8 backslashes (\\\\
) in a regex in the Symfony Expression Language
(Symfony Expression Language acts as the base for TypoScript conditions since TYPO3 9 LTS)
add a comment |
The following condition matches any applicationContext starting with "Production/Dev
"
[applicationContext matches '/^Production\\\\/Dev/']
Why so many backslashes? A backslash (
) must be escaped by 4 backslashes (
\\
) in a string and 8 backslashes (\\\\
) in a regex in the Symfony Expression Language
(Symfony Expression Language acts as the base for TypoScript conditions since TYPO3 9 LTS)
The following condition matches any applicationContext starting with "Production/Dev
"
[applicationContext matches '/^Production\\\\/Dev/']
Why so many backslashes? A backslash (
) must be escaped by 4 backslashes (
\\
) in a string and 8 backslashes (\\\\
) in a regex in the Symfony Expression Language
(Symfony Expression Language acts as the base for TypoScript conditions since TYPO3 9 LTS)
edited Nov 22 at 13:18
answered Nov 22 at 12:33
Josef Glatz
18111
18111
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53429969%2ftyposcript-applicationcontext-condition-with-wildcards-or-sub-contexts-not-possi%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Does The Expression Syntax help?
– Mathias Brodala
Nov 22 at 11:38
1
Thanks @MathiasBrodala for the hint. With you info, the following can be done:
[applicationContext matches "/^Development/"]
which matches when the actual Context isDevelopment/Docker
– Josef Glatz
Nov 22 at 12:14