SlideShare a Scribd company logo
1 of 35
IF, CASE, CONDITIONTypoScript
TypoScript Einführung Conditions CASE IF Links
TypoScript Einführung
Was ist TypoScript? TypoScript ist eine Konfigurationssprache die TYPO3 anweist, Daten zu verarbeiten und anzuzeigen (vergleichbar mit XML). Diese Konfigurationssprache ist eines der Hauptmerkmale bei der Unterscheidung von TYPO3 zu einem anderen CMS. Vorteil: TYPO3 wird somit extrem flexibel Nachteil:TypoScript bietet eine gewisse Lernhürde
Schritt 1: Statischen Text ausgeben page = PAGE page.10 = TEXT page.10.value = Hello World setup Hello World Hello World <html>
Schritt 2: Statischen Text aus HTML Template ausgeben page = PAGE page.10 = TEMPLATE page.10.template = FILE page.10.template.file = fileadmin/htmltemplate.html setup Hello World <html> <head> … </head> <body> Hello World </body> </html> <html> Info: TEMPLATE generiert HTML Head und erlaubt ersetzen von Subparts und Markern
Schritt 3: HTML Template mit Marker ausgeben page = PAGE page.10 = TEMPLATE page.10 { template = FILE template.file = fileadmin/htmltemplate.html marks.MARKER = TEXT marks.MARKER.value = Ichbinein Marker } setup Hello World Ich bin ein Marker … Hello World <br /> Ich bin ein Marker … <html>
Schritt 4: Konstanten nutzen page = PAGE page { 	10 = TEXT 	10.value = {$var} 	20 = TEXT 	20.value = {$var} 	30 < .10 	… var = Hello World setup constants HelloWorldHelloWorldHello World HelloWorldHelloWorldHello World <html>
TypoScriptConditions
Was sind TypoScriptConditions? Conditions sind Bedingungen, die bei Erfüllung eine bestimmte TS Konfiguration zulassen oder ignorieren. Gängige Bedingungen: browser, IP, month, usergroup, PIDupinRootline, globalVar, userFunc
Schritt 5: Conditions nutzen page.10 = TEXT page.10.value = Hello World [globalVar = GP:L=1] page.10.value = Hallo Welt [end] setup # index.php?id=1 Hello World # index.php?id=1&L=1 Hallo Welt <html> <html> Info: Conditionsnie innerhalb von geschweiften Klammern nutzen
Schritt 6: Conditions nie innerhalb von geschweiften Klammern page.10 = TEXT page.10 { value = lala [globalVar = GP:L=1] value = lulu [end] } page.10 = TEXT page.10 { value = lala } [globalVar = GP:L=1] page.10.value = lulu [end] setup setup # immer lala lala # index.php?id=1 lala # index.php?id=1&L=1 lulu <html> <html>
Schritt 7: Weitere Condition Beispiele (month) page.10 = TEXT page.10.value = {$var} [month = 4,5,6,7,8] var = Es istSommer [end] [month = 9,10,11,12,1,2,3,4] var = Es ist Winter [end] setup constants # September Es ist Winter # August Es ist Sommer <html> <html> Info: Conditionskönnen auch in den constants verwendet werden
Schritt 8: Weitere Conditions Beispiele (IP) page.10 = TEXT page.10.value = Diese Seite ist noch in der Entwicklung [IP = 192.168.*.*] page.10 = TEMPLATE page.10.template.file = fileadmin/template.html ... [end] setup # Intranet Anythingelse # Internet Diese Seite ist noch in der Entwicklung <html> <html>
Schritt 9: Weitere Conditions Beispiele (globalVar) # clearsubpart page.10.subparts.RECHTESPALTE = COA page.10.subparts.RECHTESPALTE { 	10 = TEXT 	20 = TEXT 	30 = TEXT } # showif on PID 1 [globalVar = TSFE:id=1] page.10.subparts.RECHTESPALTE.10.value = Du bist auf Home [end] # ifnewsdetailisshown [globalVar = GP:tx_ttnews|tt_news > 0] page.10.subparts.RECHTESPALTE.20.value = News poweredby TYPO3 [end] # if powermail mail was sent [globalVar = GP:tx_powermail_pi1|uid40 = *] page.10.subparts.RECHTESPALTE.10.value = Mail wurde abgesendet! [end] setup
Schritt 10: Weitere Conditions Beispiele (userFunc) [userFunc = user_test] # do something [else] # do something else [end] setup functionuser_test() {  if (date('m') == '01') { returntrue;  	} else { returnfalse; 	} } <php> … include 'fileadmin/userFunc.php'; … localconf Info: Keine Klassen, nur Funktionen
TypoScript CASE
CASE in TypoScript Ähnlich der SWITCH Funktion in PHP, kann man mit CASE einen Parameter auf verschiedene Werte vergleichen. Sinn: ist A gleich B, dann X, wenn nicht, ist A gleich C, dann Y, wenn nicht,ist A gleich D, dann Z Schnelle Abarbeitung möglich
Schritt 11: CASE anwenden # page.subtitle could be 1 or 2 or 3 lib.object = CASE lib.object { key.field = subtitle 	default = TEXT default.value = Das isteineStandardseite 	2 = TEXT 	2.value = Hierfindensie die besten News 	3 = TEXT 	3.value = HierzeigenwirIhnentolleFotos } Page.10.marks.OBJECT < lib.object setup
Schritt 12: CASE anwenden (von css_styled_content) # wrap header of a content element … 10 = CASE 10 { key.field = header_layout 	1 = TEXT 	1.fontTag = <h1>|</h1> 	2 < .1 	2.fontTag = <h2>|</h2> 	3 < .1 	3.fontTag = <h3>|</h3> } … setup
Schritt 13: CASE anwenden (von powermail) object = CASE object { key.data = TSFE:fe_user|sesData|powermail_5345|uid34 default = TEXT default.value = Sehr geehrte Frau 	Herr = TEXT Herr.value = Sehr geehrter Herr } plugin.tx_powermail_pi1.dynamicTyposcript.test < object setup Details: http://www.typo3.net/index.php?id=13&action=list_post&tid=78897
Schritt 14: CASE anwenden (Extensionentwicklung) temp = CASE temp { key.field = table 	default = TEXT default.field = value url < .default url.typolink.parameter.field = url } setup $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery ( 	'title, description, url', 	'tx_jump_url', '1', '', '', 1 ); while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { foreach ($row as $key => $value) { 		$this->cObj->start(array('table'=>$key,'value'=>$value), 'table'); 		$marker['###' . strtoupper($key) . '###'] =  			$this->cObj->cObjGetSingle($conf['temp'], $conf['temp.']); 	} } <php>
TypoScriptif
Was ist eine IF Abfrage in TypoScript? TypoScriptIF lässt sich nur bedingt mit einer IF-Abfrage in PHP Vergleichen. Annähernd lassen sich jedoch auch hier bedingte Ausführungen von TypoScript realisieren. Gängige IF Statements in TypoScript: isTrue, isFalse, isPositive, isGreaterThan, isLessThan, equals, isInList, value, negate, directReturn
Schritt 15: Wrap immer vorhanden!? # title:  lib.title = TEXT lib.title.field = title lib.title.wrap = <b>Titel: |</b> # title: Seite1 lib.title = TEXT lib.title.field = title lib.title.wrap = <b>Titel: |</b> setup setup Titel: Titel: Seite1 Info: Leerzeichen im Wrap mit noTrimWrap
Schritt 16: Wrap nur wenn Inhalt (Wenn) # title: Seite1 lib.title = TEXT lib.title { 	field = title field.wrap = <b>Titel: |</b> if.isTrue.field = title } # title: lib.title = TEXT lib.title { 	field = title field.wrap = <b>Titel: |</b> if.isTrue.field = title } setup setup Titel: Seite1
Schritt 17: Anderer Inhalt wenn Feld leer (COA: Wenn, Dann) lib.title COA lib.title { 	10 = TEXT 	10.field = title 	10.if.isTrue.field = title 	20 = TEXT 	20.value = Kein Titel für diese Seite vergeben 	20.if.isFalse.field = title } setup Seite 1 Kein Titel für diese Seitevergeben
Schritt 18: Praxisbeispiel – Anderes HTML Template bei  		Wert in rechter Spalte temp.maintemplate = COA temp.maintemplate { 	# ifthereiscontent in therightcol 	10 = COA 	10 { if.isTrue.numRows < styles.content.getRight 		10 = TEMPLATE 		10 { template = FILE template.file = fileadmin/2cols.html 		} 	} 	# ifthereis NO content in therightcol 	20 = COA 	20 { if.isFalse.numRows < styles.content.getRight 		10 = TEMPLATE 		10 { template = FILE template.file = fileadmin/1col.html 		} 	} } setup
Schritt 18: Praxisbeispiel – Automatisch Zwei-Spaltig durch 		anderen Wrap page.10 = TEMPLATE page.10 { template = FILE template.file = fileadmin/tmpl.html subparts.CONTENT = COA subparts.CONTENT { 		10 = COA 		10 { if.isTrue.numRows < styles.content.getLeft 			10 < styles.content.getLeft 			10.wrap = <divid="col1" class="col">|</div> 			20 < styles.content.get 			20.wrap = <divid="col2" class="col">|</div> 		}  		20 = COA 		20 { if.isFalse.numRows < styles.content.getLeft 			10 = TEXT 			20 < styles.content.get 			20.wrap = <divid="col12">|</div> 		} 	} } setup
Schritt 19: if mit equals lib.foo = TEXT lib.foo { value = News mit UID 2 if.value.data = GPvar:tx_ttnews[tt_news] if.equals = 2 } setup # &tx_ttnews[tt_news]=1 # &tx_ttnews[tt_news]=2 News mit UID 2
Schritt 20: negate lib.foo = COA lib.foo { 	10 = TEXT 	10.value = News mit UID 2 	10.if.value.data = GPvar:tx_ttnews[tt_news] 	10.if.equals = 2 	20 = TEXT 	20.value = Andere News 	20.if.value.data = GPvar:tx_ttnews[tt_news] 	20.if.equals = 2 	20.if.negate = 1 } setup setup # Gleiches Resultat mit CASE lib.foo = CASE lib.foo { key.data = GPvar:tx_ttnews[tt_news] default = TEXT default.value = Andere News 	2 = TEXT 	20.value = News mit UID 2 }
Schritt 21: Komplexeres Beispiel Menü mit ACT Status anhand GET Parameter lib.menu = HMENU lib.menu { 	1 = TMENU 	1 { 		NO { stdWrap.cObject = COA stdWrap.cObject { 				10 = TEXT 				10.field = title 				10.if { value.field = uid equals.data = GPvar:tx_finder_pi1|page 				} 				10.wrap = <b>|</b><br /> 				20 < .10 				20.if.negate = 1 				20.wrap = |<br /> 			} 		} 	} } setup
Allgemeine Links Zum Thema
[object Object]
typo3blogger.de (if, case):http://typo3blogger.de/if-abfrage-mit-typoscript/

More Related Content

Similar to TYPO3 TypoScript: IF, CASE, CONDITIONS

Chico-UI en escuela DaVinci
Chico-UI en escuela DaVinciChico-UI en escuela DaVinci
Chico-UI en escuela DaVinciNatan Santolo
 
ADO.NET Entity Framework 4
ADO.NET Entity Framework 4ADO.NET Entity Framework 4
ADO.NET Entity Framework 4Raffaele Fanizzi
 
再来了解文档回流(Reflow)
再来了解文档回流(Reflow)再来了解文档回流(Reflow)
再来了解文档回流(Reflow)EnLei-Cai
 
HTML&CSS 1 - Introduction to HTML
HTML&CSS 1 - Introduction to HTMLHTML&CSS 1 - Introduction to HTML
HTML&CSS 1 - Introduction to HTMLDinis Correia
 

Similar to TYPO3 TypoScript: IF, CASE, CONDITIONS (6)

Clase5_Python-CTIC
Clase5_Python-CTICClase5_Python-CTIC
Clase5_Python-CTIC
 
Chico-UI en escuela DaVinci
Chico-UI en escuela DaVinciChico-UI en escuela DaVinci
Chico-UI en escuela DaVinci
 
ADO.NET Entity Framework 4
ADO.NET Entity Framework 4ADO.NET Entity Framework 4
ADO.NET Entity Framework 4
 
再来了解文档回流(Reflow)
再来了解文档回流(Reflow)再来了解文档回流(Reflow)
再来了解文档回流(Reflow)
 
MS Swit 2010
MS Swit 2010MS Swit 2010
MS Swit 2010
 
HTML&CSS 1 - Introduction to HTML
HTML&CSS 1 - Introduction to HTMLHTML&CSS 1 - Introduction to HTML
HTML&CSS 1 - Introduction to HTML
 

More from Alex Kellner

TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenTYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenAlex Kellner
 
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty RosenheimVorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty RosenheimAlex Kellner
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenAlex Kellner
 
Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0Alex Kellner
 
TYPO3 Extension in2snippets
TYPO3 Extension in2snippetsTYPO3 Extension in2snippets
TYPO3 Extension in2snippetsAlex Kellner
 
jQuery Mobile mit TYPO3
jQuery Mobile mit TYPO3jQuery Mobile mit TYPO3
jQuery Mobile mit TYPO3Alex Kellner
 
TYPO3 coding guidelines
TYPO3 coding guidelinesTYPO3 coding guidelines
TYPO3 coding guidelinesAlex Kellner
 
jQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenjQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenAlex Kellner
 
Extension linkhandler
Extension linkhandlerExtension linkhandler
Extension linkhandlerAlex Kellner
 
Secure TYPO Extensions
Secure TYPO ExtensionsSecure TYPO Extensions
Secure TYPO ExtensionsAlex Kellner
 
TYPO3 security updates
TYPO3 security updatesTYPO3 security updates
TYPO3 security updatesAlex Kellner
 
SEO on TYPO3 homepage
SEO on TYPO3 homepageSEO on TYPO3 homepage
SEO on TYPO3 homepageAlex Kellner
 
Presentation of Powermail for TYPO3
Presentation of Powermail for TYPO3Presentation of Powermail for TYPO3
Presentation of Powermail for TYPO3Alex Kellner
 

More from Alex Kellner (16)

TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenTYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
 
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty RosenheimVorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
Vorstellung TYPO3 Neos - Release 1.0 - Releaseparty Rosenheim
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein Wissen
 
Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0Alle Änderungen zu TYPO3 6.0
Alle Änderungen zu TYPO3 6.0
 
Powermail 2.0
Powermail 2.0Powermail 2.0
Powermail 2.0
 
TYPO3 Extension in2snippets
TYPO3 Extension in2snippetsTYPO3 Extension in2snippets
TYPO3 Extension in2snippets
 
jQuery Mobile mit TYPO3
jQuery Mobile mit TYPO3jQuery Mobile mit TYPO3
jQuery Mobile mit TYPO3
 
TYPO3 coding guidelines
TYPO3 coding guidelinesTYPO3 coding guidelines
TYPO3 coding guidelines
 
jQuery in TYPO3 nutzen
jQuery in TYPO3 nutzenjQuery in TYPO3 nutzen
jQuery in TYPO3 nutzen
 
Extension linkhandler
Extension linkhandlerExtension linkhandler
Extension linkhandler
 
SEO for Editors
SEO for EditorsSEO for Editors
SEO for Editors
 
Secure TYPO Extensions
Secure TYPO ExtensionsSecure TYPO Extensions
Secure TYPO Extensions
 
Powermail Tritum
Powermail TritumPowermail Tritum
Powermail Tritum
 
TYPO3 security updates
TYPO3 security updatesTYPO3 security updates
TYPO3 security updates
 
SEO on TYPO3 homepage
SEO on TYPO3 homepageSEO on TYPO3 homepage
SEO on TYPO3 homepage
 
Presentation of Powermail for TYPO3
Presentation of Powermail for TYPO3Presentation of Powermail for TYPO3
Presentation of Powermail for TYPO3
 

TYPO3 TypoScript: IF, CASE, CONDITIONS

  • 4. Was ist TypoScript? TypoScript ist eine Konfigurationssprache die TYPO3 anweist, Daten zu verarbeiten und anzuzeigen (vergleichbar mit XML). Diese Konfigurationssprache ist eines der Hauptmerkmale bei der Unterscheidung von TYPO3 zu einem anderen CMS. Vorteil: TYPO3 wird somit extrem flexibel Nachteil:TypoScript bietet eine gewisse Lernhürde
  • 5. Schritt 1: Statischen Text ausgeben page = PAGE page.10 = TEXT page.10.value = Hello World setup Hello World Hello World <html>
  • 6. Schritt 2: Statischen Text aus HTML Template ausgeben page = PAGE page.10 = TEMPLATE page.10.template = FILE page.10.template.file = fileadmin/htmltemplate.html setup Hello World <html> <head> … </head> <body> Hello World </body> </html> <html> Info: TEMPLATE generiert HTML Head und erlaubt ersetzen von Subparts und Markern
  • 7. Schritt 3: HTML Template mit Marker ausgeben page = PAGE page.10 = TEMPLATE page.10 { template = FILE template.file = fileadmin/htmltemplate.html marks.MARKER = TEXT marks.MARKER.value = Ichbinein Marker } setup Hello World Ich bin ein Marker … Hello World <br /> Ich bin ein Marker … <html>
  • 8. Schritt 4: Konstanten nutzen page = PAGE page { 10 = TEXT 10.value = {$var} 20 = TEXT 20.value = {$var} 30 < .10 … var = Hello World setup constants HelloWorldHelloWorldHello World HelloWorldHelloWorldHello World <html>
  • 10. Was sind TypoScriptConditions? Conditions sind Bedingungen, die bei Erfüllung eine bestimmte TS Konfiguration zulassen oder ignorieren. Gängige Bedingungen: browser, IP, month, usergroup, PIDupinRootline, globalVar, userFunc
  • 11. Schritt 5: Conditions nutzen page.10 = TEXT page.10.value = Hello World [globalVar = GP:L=1] page.10.value = Hallo Welt [end] setup # index.php?id=1 Hello World # index.php?id=1&L=1 Hallo Welt <html> <html> Info: Conditionsnie innerhalb von geschweiften Klammern nutzen
  • 12. Schritt 6: Conditions nie innerhalb von geschweiften Klammern page.10 = TEXT page.10 { value = lala [globalVar = GP:L=1] value = lulu [end] } page.10 = TEXT page.10 { value = lala } [globalVar = GP:L=1] page.10.value = lulu [end] setup setup # immer lala lala # index.php?id=1 lala # index.php?id=1&L=1 lulu <html> <html>
  • 13. Schritt 7: Weitere Condition Beispiele (month) page.10 = TEXT page.10.value = {$var} [month = 4,5,6,7,8] var = Es istSommer [end] [month = 9,10,11,12,1,2,3,4] var = Es ist Winter [end] setup constants # September Es ist Winter # August Es ist Sommer <html> <html> Info: Conditionskönnen auch in den constants verwendet werden
  • 14. Schritt 8: Weitere Conditions Beispiele (IP) page.10 = TEXT page.10.value = Diese Seite ist noch in der Entwicklung [IP = 192.168.*.*] page.10 = TEMPLATE page.10.template.file = fileadmin/template.html ... [end] setup # Intranet Anythingelse # Internet Diese Seite ist noch in der Entwicklung <html> <html>
  • 15. Schritt 9: Weitere Conditions Beispiele (globalVar) # clearsubpart page.10.subparts.RECHTESPALTE = COA page.10.subparts.RECHTESPALTE { 10 = TEXT 20 = TEXT 30 = TEXT } # showif on PID 1 [globalVar = TSFE:id=1] page.10.subparts.RECHTESPALTE.10.value = Du bist auf Home [end] # ifnewsdetailisshown [globalVar = GP:tx_ttnews|tt_news > 0] page.10.subparts.RECHTESPALTE.20.value = News poweredby TYPO3 [end] # if powermail mail was sent [globalVar = GP:tx_powermail_pi1|uid40 = *] page.10.subparts.RECHTESPALTE.10.value = Mail wurde abgesendet! [end] setup
  • 16. Schritt 10: Weitere Conditions Beispiele (userFunc) [userFunc = user_test] # do something [else] # do something else [end] setup functionuser_test() { if (date('m') == '01') { returntrue; } else { returnfalse; } } <php> … include 'fileadmin/userFunc.php'; … localconf Info: Keine Klassen, nur Funktionen
  • 18. CASE in TypoScript Ähnlich der SWITCH Funktion in PHP, kann man mit CASE einen Parameter auf verschiedene Werte vergleichen. Sinn: ist A gleich B, dann X, wenn nicht, ist A gleich C, dann Y, wenn nicht,ist A gleich D, dann Z Schnelle Abarbeitung möglich
  • 19. Schritt 11: CASE anwenden # page.subtitle could be 1 or 2 or 3 lib.object = CASE lib.object { key.field = subtitle default = TEXT default.value = Das isteineStandardseite 2 = TEXT 2.value = Hierfindensie die besten News 3 = TEXT 3.value = HierzeigenwirIhnentolleFotos } Page.10.marks.OBJECT < lib.object setup
  • 20. Schritt 12: CASE anwenden (von css_styled_content) # wrap header of a content element … 10 = CASE 10 { key.field = header_layout 1 = TEXT 1.fontTag = <h1>|</h1> 2 < .1 2.fontTag = <h2>|</h2> 3 < .1 3.fontTag = <h3>|</h3> } … setup
  • 21. Schritt 13: CASE anwenden (von powermail) object = CASE object { key.data = TSFE:fe_user|sesData|powermail_5345|uid34 default = TEXT default.value = Sehr geehrte Frau Herr = TEXT Herr.value = Sehr geehrter Herr } plugin.tx_powermail_pi1.dynamicTyposcript.test < object setup Details: http://www.typo3.net/index.php?id=13&action=list_post&tid=78897
  • 22. Schritt 14: CASE anwenden (Extensionentwicklung) temp = CASE temp { key.field = table default = TEXT default.field = value url < .default url.typolink.parameter.field = url } setup $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery ( 'title, description, url', 'tx_jump_url', '1', '', '', 1 ); while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { foreach ($row as $key => $value) { $this->cObj->start(array('table'=>$key,'value'=>$value), 'table'); $marker['###' . strtoupper($key) . '###'] = $this->cObj->cObjGetSingle($conf['temp'], $conf['temp.']); } } <php>
  • 24. Was ist eine IF Abfrage in TypoScript? TypoScriptIF lässt sich nur bedingt mit einer IF-Abfrage in PHP Vergleichen. Annähernd lassen sich jedoch auch hier bedingte Ausführungen von TypoScript realisieren. Gängige IF Statements in TypoScript: isTrue, isFalse, isPositive, isGreaterThan, isLessThan, equals, isInList, value, negate, directReturn
  • 25. Schritt 15: Wrap immer vorhanden!? # title: lib.title = TEXT lib.title.field = title lib.title.wrap = <b>Titel: |</b> # title: Seite1 lib.title = TEXT lib.title.field = title lib.title.wrap = <b>Titel: |</b> setup setup Titel: Titel: Seite1 Info: Leerzeichen im Wrap mit noTrimWrap
  • 26. Schritt 16: Wrap nur wenn Inhalt (Wenn) # title: Seite1 lib.title = TEXT lib.title { field = title field.wrap = <b>Titel: |</b> if.isTrue.field = title } # title: lib.title = TEXT lib.title { field = title field.wrap = <b>Titel: |</b> if.isTrue.field = title } setup setup Titel: Seite1
  • 27. Schritt 17: Anderer Inhalt wenn Feld leer (COA: Wenn, Dann) lib.title COA lib.title { 10 = TEXT 10.field = title 10.if.isTrue.field = title 20 = TEXT 20.value = Kein Titel für diese Seite vergeben 20.if.isFalse.field = title } setup Seite 1 Kein Titel für diese Seitevergeben
  • 28. Schritt 18: Praxisbeispiel – Anderes HTML Template bei Wert in rechter Spalte temp.maintemplate = COA temp.maintemplate { # ifthereiscontent in therightcol 10 = COA 10 { if.isTrue.numRows < styles.content.getRight 10 = TEMPLATE 10 { template = FILE template.file = fileadmin/2cols.html } } # ifthereis NO content in therightcol 20 = COA 20 { if.isFalse.numRows < styles.content.getRight 10 = TEMPLATE 10 { template = FILE template.file = fileadmin/1col.html } } } setup
  • 29. Schritt 18: Praxisbeispiel – Automatisch Zwei-Spaltig durch anderen Wrap page.10 = TEMPLATE page.10 { template = FILE template.file = fileadmin/tmpl.html subparts.CONTENT = COA subparts.CONTENT { 10 = COA 10 { if.isTrue.numRows < styles.content.getLeft 10 < styles.content.getLeft 10.wrap = <divid="col1" class="col">|</div> 20 < styles.content.get 20.wrap = <divid="col2" class="col">|</div> } 20 = COA 20 { if.isFalse.numRows < styles.content.getLeft 10 = TEXT 20 < styles.content.get 20.wrap = <divid="col12">|</div> } } } setup
  • 30. Schritt 19: if mit equals lib.foo = TEXT lib.foo { value = News mit UID 2 if.value.data = GPvar:tx_ttnews[tt_news] if.equals = 2 } setup # &tx_ttnews[tt_news]=1 # &tx_ttnews[tt_news]=2 News mit UID 2
  • 31. Schritt 20: negate lib.foo = COA lib.foo { 10 = TEXT 10.value = News mit UID 2 10.if.value.data = GPvar:tx_ttnews[tt_news] 10.if.equals = 2 20 = TEXT 20.value = Andere News 20.if.value.data = GPvar:tx_ttnews[tt_news] 20.if.equals = 2 20.if.negate = 1 } setup setup # Gleiches Resultat mit CASE lib.foo = CASE lib.foo { key.data = GPvar:tx_ttnews[tt_news] default = TEXT default.value = Andere News 2 = TEXT 20.value = News mit UID 2 }
  • 32. Schritt 21: Komplexeres Beispiel Menü mit ACT Status anhand GET Parameter lib.menu = HMENU lib.menu { 1 = TMENU 1 { NO { stdWrap.cObject = COA stdWrap.cObject { 10 = TEXT 10.field = title 10.if { value.field = uid equals.data = GPvar:tx_finder_pi1|page } 10.wrap = <b>|</b><br /> 20 < .10 20.if.negate = 1 20.wrap = |<br /> } } } } setup
  • 34.
  • 36. typo3blogger.de (Ein- oder zweispaltige Templates):http://typo3blogger.de/automatisch-ein-oder-zweispaltig-ohne-tv-und-ohne-templateselector/
  • 39.