Durch die Symfony Expression Language hat sich ja einiges geändert, daher hier eine lose Sammlung wie die alten TypoScript Bedinungen ersetzt werden können
Zuerst hier schon mal 2 Blogs die das schon großartig umschreiben
- https://usetypo3.com/symfony-expression-language-in-typo3.html
- https://www.clickstorm.de/blog/typoscript-conditions-symfony-expression-language/
und schon mal eine ganz wichtige aus GP: und einem nested Array wird folgendes
[globalVar = GP:tx_ttnews|tt_news > 0]
//POST && GET [request.getParsedBody()['tx_news_pi1']['news'] > 0 || request.getQueryParams()['tx_news_pi1']['news'] > 0] //only GET [request.getQueryParams()['tx_news_pi1']['news'] > 0]
//mittlerweile ist diese Variante zu bevorzugen, da so keine exceptions in //der Log File geworfen werden wenn kein 'tx_news_pi1' in der aktuellen Anfrage vorhanden ist [traverse(request.getQueryParams(), 'tx_news_pi1/news') > 0] # This condition matches if current query parameters have tx_news_pi[news] set to a value greater than zero [END]
[globalVar = TSFE:id=1] [page["uid"] == 1] bzw. [getTSFE().id == 1]
[globalVar = TSFE:beUserLogin > 0] [getTSFE() && getTSFE().isBackendUserLoggedIn()]
[PIDupinRootline = 30] //TYPO3 9.5.x [30 in tree.rootLineIds && page["uid"] != 30] // TYPO3 10 [30 in tree.rootLineParentIds] //source https://forge.typo3.org/issues/88962