Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:about:conditions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
typo3:about:conditions [2018/10/30 21:04] – [Conditions mit symfony expression language ab TYPO3 9.4] admintypo3:about:conditions [2023/08/28 19:51] (aktuell) admin
Zeile 1: Zeile 1:
 +====== TypoScript-Condition Cheatsheet ======
 +
 ===== Conditions: Allgemeines ===== ===== Conditions: Allgemeines =====
  
Zeile 72: Zeile 74:
  
 ===== Conditions: Beispiele ===== ===== Conditions: Beispiele =====
 +
 +==== Application Context ====
 +<code typoscript>
 +// "Klassische" Condition bis TYPO3 v9:
 +[applicationContext = Staging]
 +[applicationContext = Production/Staging]
 +
 +// Ab TYPO3 9.4 - doppeltes Gleichheitszeichen und Anführungszeichen:
 +[applicationContext == "Development"]
 +[applicationContext == "Production/Staging"]
 +
 +</code>
  
 ==== Sprachwahl ==== ==== Sprachwahl ====
Zeile 91: Zeile 105:
 // Ab TYPO3 9.4: // Ab TYPO3 9.4:
 [request.getQueryParams() ['print'] > 0] [request.getQueryParams() ['print'] > 0]
 +[traverse(request.getQueryParams(), 'tx_news_pi1/news') > 0]
 </code> </code>
  
 +Die erweiterte und empfohlene Condition mit ''traverse'' prüft zunächst, ob das Array (hier: //tx_news_pi1/news//) existiert. Dies verhindert Log-Einträge mit //"RuntimeException: Unable to get an item on a non-array"//, wenn das Array fehlt.
 ==== Einzelne Seite OHNE Unterseiten ==== ==== Einzelne Seite OHNE Unterseiten ====
 <code typoscript> <code typoscript>
Zeile 101: Zeile 117:
  
 // Ab TYPO3 9.4: // Ab TYPO3 9.4:
-[page["uid"== 17] +[traverse(page"uid"== 17] 
-[page["uid"in [17,24]]+[traverse(page"uid"in [17,24]]
 [getTSFE().id == 17] [getTSFE().id == 17]
 [getTSFE().id in [17,24]] [getTSFE().id in [17,24]]
Zeile 111: Zeile 127:
 // "Klassische" Condition bis TYPO3 v9: // "Klassische" Condition bis TYPO3 v9:
 [PIDinRootline = 17, 24] [PIDinRootline = 17, 24]
 +
 +// Ab TYPO3 9.4:
 +[17 in tree.rootLineIds || 24 in tree.rootLineIds]
 </code> </code>
  
Zeile 117: Zeile 136:
 // "Klassische" Condition bis TYPO3 v9: // "Klassische" Condition bis TYPO3 v9:
 [PIDupinRootline = 17, 24] [PIDupinRootline = 17, 24]
 +
 +// Ab TYPO3 10.3:
 +[17 in tree.rootLineParentIds || 24 in tree.rootLineParentIds]
 </code> </code>
  
Zeile 148: Zeile 170:
  
 // Ab TYPO3 9.4: // Ab TYPO3 9.4:
-[page["backend_layout"== 'pagets__2_columns_33_66']+[traverse(page"backend_layout"== 'pagets__2_columns_33_66']
 </code> </code>
  
Zeile 155: Zeile 177:
 // "Klassische" Condition bis TYPO3 v9: // "Klassische" Condition bis TYPO3 v9:
 [page|backend_layout = 1] [page|backend_layout = 1]
 +
 +// Ab TYPO3 9.4:
 +[tree.pagelayout == 1]
 +[tree.pagelayout == "pagets__1Column"]
 </code> </code>
  
Zeile 202: Zeile 228:
  
 // Ab TYPO3 9.4: // Ab TYPO3 9.4:
-[getTSFE().beUserLogin]+[getTSFE().isBackendUserLoggedIn()]
 </code> </code>
  
 +Zwischenzeitlich gab es einen Bug, wodurch man die Symfony Condition erweitern musste (''[getTSFE() && getTSFE().isBackendUserLoggedIn()]''). Dieser ist aber nun in TYPO3 v9 und v10 behoben.
 +
 +Seit TYPO3 9.5.16 und 10.4.1 ist es alternativ möglich, die verschiedenen ''[backend.user.*]'' Conditions im Frontend zu verwenden:
 +
 +<code typoscript>
 +[backend.user.isLoggedIn]
 +[backend.user.isAdmin]
 +[backend.user.userId == 2]
 +</code>
 +
 +Quelle: [[https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Conditions/Index.html#backend|Offizielle Dokumentation]] (mit Dank an Josef Glatz für den Hinweis!)
 ==== Auszulesende Konstante größer als 10 ==== ==== Auszulesende Konstante größer als 10 ====
 <code typoscript> <code typoscript>
 // "Klassische" Condition bis TYPO3 v9: // "Klassische" Condition bis TYPO3 v9:
 [globalVar = LIT:10 < {$konstante}] [globalVar = LIT:10 < {$konstante}]
 +
 +// Ab TYPO3 9.4:
 +[{$konstante} > 10]
 </code> </code>
  
Zeile 232: Zeile 272:
 </code> </code>
  
 +==== Spalte in Backend-Layout abfragen (Page TSconfig, z.B. TCEFORM) ====
 +
 +<code typoscript>
 +// "Klassische" Condition bis TYPO3 v9:
 +[globalVar = GP:defVals|tt_content|colPos==10]
 + 
 +// Ab TYPO3 9.4:
 +[request.getQueryParams()['defVals']['tt_content']['colPos'] == 10]
 +</code>
 +
 +Quelle: [[https://forge.typo3.org/issues/91646#note-1|Oliver Hader auf TYPO3 Forge]]
typo3/about/conditions.1540929845.txt.gz · Zuletzt geändert: 2018/10/30 21:04 von admin