Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
typo3:about:conditions [2018/10/29 21:57] – [Conditions: Beispiele] admin | typo3:about:conditions [2023/08/28 19:51] (aktuell) – admin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== TypoScript-Condition Cheatsheet ====== | ||
+ | |||
===== Conditions: Allgemeines ===== | ===== Conditions: Allgemeines ===== | ||
+ | |||
+ | In TYPO3 9.4 wurde die //symfony expression language// eingeführt. Die alten, „klassischen“ Conditions gelten damit als deprecated und werden in TYPO3 v10 entfernt. | ||
+ | |||
+ | ==== " | ||
+ | |||
<code typoscript> | <code typoscript> | ||
- | # Beides muss zutreffen | + | // Beides muss zutreffen: |
[Condition 1] && [Condition 2] | [Condition 1] && [Condition 2] | ||
[Condition 1] AND [Condition 2] | [Condition 1] AND [Condition 2] | ||
- | # Eines von beiden muss zutreffen | + | // Eines von beiden muss zutreffen: |
[Condition 1][Condition 2] | [Condition 1][Condition 2] | ||
[Condition 1] || [Condition 2] | [Condition 1] || [Condition 2] | ||
[Condition 1] OR [Condition 2] | [Condition 1] OR [Condition 2] | ||
- | # Entweder Firefox ODER der Internet Explorer 8+ | + | // Entweder Firefox ODER der Internet Explorer 8+: |
[browser = firefox] || [browser = msie] && [version => 8] | [browser = firefox] || [browser = msie] && [version => 8] | ||
- | # Weitere Auswahlmöglichkeiten dank ' | + | // Weitere Auswahlmöglichkeiten dank ' |
[browser = msie] | [browser = msie] | ||
page.10.value = Internet Explorer | page.10.value = Internet Explorer | ||
Zeile 20: | Zeile 27: | ||
[END] | [END] | ||
- | # Bedingung verneinen | + | // Bedingung verneinen: |
[Condition] | [Condition] | ||
[else] | [else] | ||
page.10.value = Füge direkt nach der Bedingung ein [else] ein. | page.10.value = Füge direkt nach der Bedingung ein [else] ein. | ||
[end] | [end] | ||
+ | </ | ||
+ | <WRAP center round info 100%> | ||
+ | Anmerkung: die '' | ||
+ | </ | ||
+ | |||
+ | ==== Conditions mit symfony expression language ab TYPO3 9.4 ==== | ||
+ | |||
+ | Mit der neuen Syntax können Conditions innerhalb der selben Klammer verknüpft werden. Die alte Schreibweise in zwei Blöcken ist zumindest in TYPO3 v9 weiterhin möglich, womöglich aber ebenfalls deprecated. Ich empfehle daher die neue Schreibweise. | ||
+ | |||
+ | <code typoscript> | ||
+ | // Beides muss zutreffen: | ||
+ | [Condition 1 && Condition 2] | ||
+ | |||
+ | // Eines von beiden muss zutreffen: | ||
+ | [Condition 1 || Condition 2] | ||
+ | |||
+ | // Entweder eingeloggt ODER auf der englischen Version der Seite mit ID 75: | ||
+ | [frontend.user.isLoggedIn == 1 || getTSFE().id == 75 && siteLanguage(" | ||
+ | |||
+ | // Weitere Auswahlmöglichkeiten dank ' | ||
+ | [loginUser(' | ||
+ | page.10.value = Der Nutzer ist angemeldet. | ||
+ | [ELSE] | ||
+ | page.10.value = Der Nutzer ist nicht angemeldet. | ||
+ | [END] | ||
+ | |||
+ | // Bedingung verneinen: | ||
+ | [frontend.user.isLoggedIn != 1] | ||
+ | |||
+ | // Neu: Zahlenraum zwischen 18 und 45: | ||
+ | [page[" | ||
</ | </ | ||
+ | |||
+ | <WRAP center round tip 100%> | ||
+ | Es gibt noch einige Möglichkeiten mehr, um Bedingungen abzufragen: | ||
+ | Derzeit ist diese Dokumentation noch ausbaufähig. | ||
+ | </ | ||
---- | ---- | ||
Zeile 32: | Zeile 75: | ||
===== Conditions: Beispiele ===== | ===== Conditions: Beispiele ===== | ||
- | In TYPO3 9.4 wurde die //symfony expression language// eingeführt. Die alten Conditions gelten damit als deprecated und werden in TYPO3 v10 entfernt. | + | ==== Application Context ==== |
+ | <code typoscript> | ||
+ | // " | ||
+ | [applicationContext = Staging] | ||
+ | [applicationContext = Production/Staging] | ||
+ | |||
+ | // Ab TYPO3 9.4 - doppeltes Gleichheitszeichen und Anführungszeichen: | ||
+ | [applicationContext == " | ||
+ | [applicationContext == " | ||
+ | |||
+ | </ | ||
==== Sprachwahl ==== | ==== Sprachwahl ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[globalVar = GP:L = 1] | [globalVar = GP:L = 1] | ||
Zeile 45: | Zeile 100: | ||
==== Mit Get-Parameter: | ==== Mit Get-Parameter: | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[globalVar = GP:print > 0] | [globalVar = GP:print > 0] | ||
// Ab TYPO3 9.4: | // Ab TYPO3 9.4: | ||
[request.getQueryParams() [' | [request.getQueryParams() [' | ||
+ | [traverse(request.getQueryParams(), | ||
</ | </ | ||
+ | Die erweiterte und empfohlene Condition mit '' | ||
==== Einzelne Seite OHNE Unterseiten ==== | ==== Einzelne Seite OHNE Unterseiten ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[globalVar = TSFE:id=17, TSFE: | [globalVar = TSFE:id=17, TSFE: | ||
- | # ODER | + | // ODER |
[globalVar = TSFE: | [globalVar = TSFE: | ||
// Ab TYPO3 9.4: | // Ab TYPO3 9.4: | ||
- | [page[" | + | [traverse(page, " |
- | [page[" | + | [traverse(page, " |
+ | [getTSFE().id == 17] | ||
+ | [getTSFE().id | ||
</ | </ | ||
==== Seiten-ID UND deren Unterseiten ==== | ==== Seiten-ID UND deren Unterseiten ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[PIDinRootline = 17, 24] | [PIDinRootline = 17, 24] | ||
+ | |||
+ | // Ab TYPO3 9.4: | ||
+ | [17 in tree.rootLineIds || 24 in tree.rootLineIds] | ||
</ | </ | ||
==== NUR Unterseiten der angegebenen Seiten-ID, nicht die gewählte Seite selbst ==== | ==== NUR Unterseiten der angegebenen Seiten-ID, nicht die gewählte Seite selbst ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[PIDupinRootline = 17, 24] | [PIDupinRootline = 17, 24] | ||
+ | |||
+ | // Ab TYPO3 10.3: | ||
+ | [17 in tree.rootLineParentIds || 24 in tree.rootLineParentIds] | ||
</ | </ | ||
==== Ebene auf der rootline. 0 ist root ==== | ==== Ebene auf der rootline. 0 ist root ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[treeLevel = 0,2] | [treeLevel = 0,2] | ||
</ | </ | ||
Zeile 79: | Zeile 149: | ||
==== Domain ==== | ==== Domain ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[globalString = IENV: | [globalString = IENV: | ||
[globalString = IENV: | [globalString = IENV: | ||
Zeile 95: | Zeile 166: | ||
==== Seiteneigenschaften abfragen (nur FE) ==== | ==== Seiteneigenschaften abfragen (nur FE) ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[globalVar = TSFE: | [globalVar = TSFE: | ||
// Ab TYPO3 9.4: | // Ab TYPO3 9.4: | ||
- | [page[" | + | [traverse(page, " |
</ | </ | ||
==== Seiteneigenschaften abfragen (FE und BE) ==== | ==== Seiteneigenschaften abfragen (FE und BE) ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[page|backend_layout = 1] | [page|backend_layout = 1] | ||
+ | |||
+ | // Ab TYPO3 9.4: | ||
+ | [tree.pagelayout == 1] | ||
+ | [tree.pagelayout == " | ||
</ | </ | ||
==== Benutzergruppen ==== | ==== Benutzergruppen ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[usergroup = *] | [usergroup = *] | ||
[usergroup = 1,2] | [usergroup = 1,2] | ||
+ | |||
+ | // Ab TYPO3 9.4: | ||
+ | [usergroup(" | ||
</ | </ | ||
==== Frontend-Benutzer ==== | ==== Frontend-Benutzer ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[loginUser = *] | [loginUser = *] | ||
[loginUser = 1,2] | [loginUser = 1,2] | ||
+ | |||
// Ab TYPO3 9.4: | // Ab TYPO3 9.4: | ||
+ | // Als beliebiger Frontend-Benutzer angemeldet: | ||
[loginUser(' | [loginUser(' | ||
+ | [frontend.user.isLoggedIn == 1] | ||
+ | |||
+ | //Als ein bestimmter Frontend-Benutzer angemeldet: | ||
+ | [frontend.user.userId == 2] | ||
+ | |||
+ | // Als einer von mehreren aufgeführten Frontend-Benutzern angemeldet: | ||
[loginUser(' | [loginUser(' | ||
+ | [frontend.user.userId in [1,2]] | ||
+ | |||
+ | // Aktuell nicht am Frontend angemeldet: | ||
[loginUser(' | [loginUser(' | ||
</ | </ | ||
Zeile 125: | Zeile 218: | ||
==== Benutzername ==== | ==== Benutzername ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[globalString = TSFE: | [globalString = TSFE: | ||
</ | </ | ||
Zeile 130: | Zeile 224: | ||
==== Frontendbenutzer im Backend eingeloggt? ==== | ==== Frontendbenutzer im Backend eingeloggt? ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[globalVar = TSFE : beUserLogin > 0] | [globalVar = TSFE : beUserLogin > 0] | ||
// Ab TYPO3 9.4: | // Ab TYPO3 9.4: | ||
- | [getTSFE().beUserLogin] | + | [getTSFE().isBackendUserLoggedIn()] |
+ | </ | ||
+ | |||
+ | Zwischenzeitlich gab es einen Bug, wodurch man die Symfony Condition erweitern musste ('' | ||
+ | |||
+ | Seit TYPO3 9.5.16 und 10.4.1 ist es alternativ möglich, die verschiedenen '' | ||
+ | |||
+ | <code typoscript> | ||
+ | [backend.user.isLoggedIn] | ||
+ | [backend.user.isAdmin] | ||
+ | [backend.user.userId == 2] | ||
</ | </ | ||
+ | Quelle: [[https:// | ||
==== Auszulesende Konstante größer als 10 ==== | ==== Auszulesende Konstante größer als 10 ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[globalVar = LIT:10 < {$konstante}] | [globalVar = LIT:10 < {$konstante}] | ||
+ | |||
+ | // Ab TYPO3 9.4: | ||
+ | [{$konstante} > 10] | ||
</ | </ | ||
==== Eigene Funktion ==== | ==== Eigene Funktion ==== | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[userFunc = Funktionsname(Parameter)] | [userFunc = Funktionsname(Parameter)] | ||
</ | </ | ||
Zeile 148: | Zeile 259: | ||
==== Ist Extension installiert? | ==== Ist Extension installiert? | ||
<code typoscript> | <code typoscript> | ||
+ | // " | ||
[userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility:: | [userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility:: | ||
</ | </ | ||
Zeile 155: | Zeile 267: | ||
<code typoscript> | <code typoscript> | ||
+ | // Ab TYPO3 9.4: | ||
[site(" | [site(" | ||
[site(" | [site(" | ||
</ | </ | ||
+ | ==== Spalte in Backend-Layout abfragen (Page TSconfig, z.B. TCEFORM) ==== | ||
+ | |||
+ | <code typoscript> | ||
+ | // " | ||
+ | [globalVar = GP: | ||
+ | |||
+ | // Ab TYPO3 9.4: | ||
+ | [request.getQueryParams()[' | ||
+ | </ | ||
+ | |||
+ | Quelle: [[https:// |