Bug #91747
closedfrontend based TS conditions throw warning in Backend
0%
Description
For example this:[123 in frontend.user.userGroupList]
This adds the following log entry on every action done in the backend:
Core: Error handler (BE): PHP Warning: in_array() expects parameter 2 to be array, string given in .../vendor/symfony/expression-language/Node/BinaryNode.php line 100
Because frontend.user.userGroupList
does not exist in BE context (because frontend
does not exist in BE, obviously). The condition is working in FE and when simulating it in the template module! Its justs literally spams the log module.
Having this on 9.5.19. Flagged as regression, because on v8 such conditions (with old syntax) worked without error.
Updated by S P over 4 years ago
- Subject changed from frontend based TS conditons throw warning in Backend to frontend based TS conditions throw warning in Backend
Updated by S P over 4 years ago
A workaround is to add getTSFE() &&
before every condition. The existance of such ugly workaround can be no excuse to not fix this bug, however.
Updated by S P over 4 years ago
Sorry, my mistake. frontend.user.userGroupList
is not array but a string. The correct usage would be [usergroup('123')]
.
But still, TYPO3 should not pass strings to an array argument. It should rather throw a proper error log, like:
Type mismatch: tried to pass string, expected array on condition [123 in frontend.user.userGroupList]
Updated by Oliver Hader almost 4 years ago
- Is Regression changed from Yes to No
Does not look like a regression to me... Documentation on v9.5 changes can be found here: https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/9.4/Feature-85829-ImplementSymfonyExpressionLanguageForTypoScriptConditions.html
Updated by Georg Ringer 6 months ago
- Status changed from New to Closed
please always use traverse and/or check the context, e.g. getTSFE
this is not a bug, even though I understand that it can be annoying. therefore closing it now