Dies ist eine alte Version des Dokuments!
<INCLUDE_TYPOSCRIPT:source="file:fileadmin/ordner/dateiname.t3s">
Für die vier Standard-Spalten in TYPO3 ist die Frontend-Ausgabe des Seiteninhalts schon in css_styled_content
konfiguriert. Mit TypoScript kann diese Konfiguration einfach an die gewünschte Stelle kopiert werden:
# colPos = 0: 10 < styles.content.get # colPos = 1: 10 < styles.content.getLeft # colPos = 2: 10 < styles.content.getRight # colPos = 3: 10 < styles.content.getBorder
Wer mehr Spalten benötigt, kann mit Backend-Layouts die gewünschte Menge sowie das Layout im Backend einstellen. Um die Seiteninhalte der zusätzlichen Spalten im Frontend ausgeben zu können, benötigt man noch folgendes TypoScript. Diese Konfiguration ist identisch mit der in css_styled_content
für die Standard-Spalten.
page.10.marks.NEWCOLUMN = CONTENT page.10.marks.NEWCOLUMN { table = tt_content select { orderBy = sorting where = colPos=4 # Muss bei mehrsprachigen Websites gesetzt werden, sonst wird der Inhalt aller Sprachen ausgegeben. select.languageField = sys_language_uid } }
css_styled_content gibt Überschriften aus dem Feld Header wie folgt aus:
<div class="csc-header csc-header-n1"> <h1 class="csc-firstHeader">Überschrift erster Ordnung, erste Überschrift auf Seite</h1> </div> <div class="csc-header csc-header-n2"> <h1>Überschrift erster Ordnung</h1> </div> <div class="csc-header csc-header-n3"> <h2>Überschrift zweiter Ordnung</h2> </div>
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:
0
(Default) zurückgibt, wird der Wert 1 genommen.lib.stdheader { 3 > 3 = LOAD_REGISTER 3.headerClass.cObject = COA 3.headerClass.cObject { 10.cObject = CASE 10.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 > }
Wir passen css_styled_content an. Das Register mit der Überschriften-Klasse csc-firstHeader wird überschrieben von einem COA, welches zwei CASE-Abfragen beinhaltet. 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:
Hiermit lassen sich Auflistungszeichen und Text separat formatieren. <html><ul><li style=„color:red;list-style-type:disc“>Listenelement mit andersfarbigem Zeichen</li></ul></html> Setup:
lib.parseFunc_RTE.externalBlocks := addToList(ol,ul,li) lib.parseFunc_RTE.externalBlocks { li.callRecursive = 1 li.callRecursive.alternativeWrap = <li><span>|</span></li> li.stdWrap.HTMLparser { allowTags = li,span,p removeTags = p } ul.callRecursive = 1 ol.callRecursive = 1 }
CSS:
li {color:red;} li > span {color:black;}