Actions
Bug #99292
closedTypoScript/TSConfig tree.rootLineIds Symfony Express condition broken if constant/setting can't be
Status:
Closed
Priority:
Should have
Assignee:
-
Category:
TypoScript
Target version:
-
Start date:
2022-12-06
Due date:
% Done:
0%
Estimated time:
TYPO3 Version:
11
PHP Version:
8.1
Tags:
conditions, symfonyexpression, expressionlanguage, typoscript, tsconfig, pagetsconfig, usertsconfig
Complexity:
Is Regression:
Sprint Focus:
Description
Problem/Description¶
Given:¶
Site config:¶
... settings: site: foo: 3 bar: 4
PageTSConfig:¶
[{$site.foo},{$site.bar} in tree.rootLineIds] condition = works mod.web_list.allowedNewTables = tx_news_domain_model_news,sys_note TCEFORM.tx_news_domain_model_news { type { keepItems = 0 } } TCAdefaults.tx_news_domain_model_news.type = 0 # ... [end]
Pagetree with only 3 Pages¶
In the example are only 3 page, page with UID 4 does not exist in the database.
Actual behaviour:¶
Condition evaluate not to true if you are on page with UID 3.
Actual workaround:¶
Check always before, if all constants can be resolved or adopt the condition
ToDo(s)¶
The behaviour is not as before using Expression Language. The fact that an extension or any Sitepackage can ship such a construct with conditions makes it mandatory to add a check if a constant or site setting could not be resolved.
Acceptance Criteria¶
The condition must also work in the example above. Or in other words: even page uid 4 is not present, the condition must work if the expression already validates to true for the first variable site.foo (which is value 3).
Actions