TYPO3 9 Conditions

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

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