Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:verschiedenes

Dies ist eine alte Version des Dokuments!


Externes Typoscript einbinden

<INCLUDE_TYPOSCRIPT:source="file:fileadmin/ordner/dateiname.t3s">

Mehr als 4 Spalten in Front- und Backend

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
  }
}

Headlines mit Klassen versehen

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:

  • 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 = 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 >
}

Erklärung:

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:

<h1 class="header-first header-1">Überschrift erster Ordnung, erste Überschrift auf Seite</h1>
<h1 class="header-1">Überschrift erster Ordnung</h1>
<h2 class="header-2">Überschrift zweiter Ordnung</h2>
<h3 class="header-2">Überschrift dritter Ordnung</h3>
[...]

Listenelemente im RTE um <span> ergänzen

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;}
typo3/verschiedenes.1395433472.txt.gz · Zuletzt geändert: 2015/12/03 19:28 (Externe Bearbeitung)