===== Headlines mit Klassen versehen ===== //css_styled_content// gibt Überschriften aus dem Feld //Header// wie folgt aus:

Überschrift erster Ordnung, erste Überschrift auf Seite

Überschrift erster Ordnung

Überschrift zweiter Ordnung

Jede Überschrift wird also mit einem zusätzlichen //div//-Element umschlossen, welches eine allgemeine Klasse sowie eine fortlaufend nummerierte Klasse (//-n1// etc.) erhält. Die erste Überschrift auf jeder Seite erhält zudem die Klasse //csc-firstHeader//. Mit diesem TypoScript wird folgendes erreicht: * Die div-Elemente werden komplett entfernt. * Allen Überschriften wird direkt eine Klasse zugewiesen, die abhängig vom Wert im Feld //header_layout// ist. * Falls das Feld //header_layout// ''0'' (Default) zurückgibt, wird der Wert 1 genommen. * Die praktische Klasse der ersten Überschrift auf einer Seite bleibt erhalten. lib.stdheader { 3 > 3 = LOAD_REGISTER 3.headerClass.cObject = CASE 3.headerClass.cObject { key.field = header_layout 0 = TEXT 0 { value = header-first header-1 if.value = 1 if.equals.data = cObj:parentRecordNumber noTrimWrap = | class="|"| } default = TEXT default { value = header-first header-{field:header_layout} if.value = 1 if.equals.data = cObj:parentRecordNumber stdWrap.insertData = 1 noTrimWrap = | class="|"| } stdWrap.ifEmpty.cObject = CASE stdWrap.ifEmpty.cObject { key.field = header_layout 0 = TEXT 0 { value = header-1 noTrimWrap = | class="|"| } default = TEXT default { value = header-{field:header_layout} insertData = 1 noTrimWrap = | class="|"| } } } stdWrap.dataWrap > } ==== Erklärung: ==== Wir passen //css_styled_content// an. Das Register mit der Überschriften-Klasse //csc-firstHeader// wird überschrieben mit zwei CASE-Abfragen. Die Zuweisung von Klassen erfolgt nach **zwei Abhängigkeiten**: Dem Wert in //header_layout// (''CASE'') und dem Wert von //cObj:parentRecordNumber// (''IF''). Das erste CASE-Objekt gibt nur dann einen Wert (also die Klassen) zurück, wenn der Wert aus //cObj:parentRecordNumber// mit ''1'' identisch ist. In diesem Fall handelt es sich dann um die erste Überschrift dieser Seite. Die erste Klasse wäre daher __header-first__, die zweite Klasse beinhaltet den Wert aus dem Feld //header_layout//. Da dies bedeuten würde, dass die Default-Überschrift die Klasse __header-0__ erhalten würde, korrigieren wir dies mit der CASE-Abfrage und weisen der Default-Überschrift den festen Wert __header-1__ zu. Wenn das erste CASE-Objekt keinen Wert ausgibt, weil es sich nicht um die erste Überschrift der Seite handelt, wird Dank ''ifEmpty'' der Wert des zweiten CASE-Objekts ausgegeben. Bis auf die fehlende if-Abfrage sind beide CASE-Objekte identisch. Das zweite TypoScript sorgt dafür, dass Überschriften aus dem RTE ebenfalls Klassen erhalten: lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines { addAttributes.H1.class = header-1 addAttributes.H2.class = header-2 addAttributes.H3.class = header-3 } Ergebnis:

Überschrift erster Ordnung, erste Überschrift auf Seite

Überschrift erster Ordnung

Überschrift zweiter Ordnung

Überschrift dritter Ordnung

[...]
---- ===== Listenelemente im RTE um ergänzen ===== Hiermit lassen sich Auflistungszeichen und Text separat formatieren. **Setup:** lib.parseFunc_RTE.externalBlocks := addToList(ol,ul,li) lib.parseFunc_RTE.externalBlocks { li.callRecursive = 1 li.callRecursive.alternativeWrap =
  • |
  • li.stdWrap.HTMLparser { allowTags = li,span,p removeTags = p } ul.callRecursive = 1 ol.callRecursive = 1 }
    **CSS:** li {color:red;} li > span {color:black;}