Basis-Typoscript

Kommentare

	# und // = einzeilige Kommentare 
	/*
		Content 
	*/ = mehrzeilige Kommentare (*/ muss in einer neuen Zeile stehen, da ansonsten der Code nicht korrekt ausgeführt wird!)

Operatoren

	=	Zuweisen
	:=	Modifikation (mittels einer Funktion)
	>	Löschen
	<	Kopieren
	=<	Referenz

Konstanten

In dem Feld Constants kann man Konstanten definieren, die man im gesamten Typoscript abgreifen kann:

Constants:

	pfadbestandteil1.pfadbestandteil2 = wert

Setup:

	objekt.eigenschaft = {$pfadbestandteil1.pfadbestandteil2}

Eine weitere Möglichkeit Konstanten einzuführen, die jedoch in Content-Elementen bestimmte Marker ersetzen ist folgende:

1. im Typoscript-Setup:

	constants.NAME = mein neuer Name
	constants.MAIL = meinemail@mail.de

2. in einem beliebigen Content Element

	Name: ###NAME###
	Mail: ###MAIL###

Typoscript-Templates inkludieren

	<INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/templates/default/ts/main.3ts">

Zusammenfassen mit spitzen Klammern

	objekt = TYP
	objekt {
		eigenschaft1 = wert
		eigenschaft2 = wert
		eigenschaft2 {
			untereigenschaft1 = wert
			untereigenschaft2 = wert
		}
	}
ACHTUNG: In durch {} zusammengefassten Bereichen (übersichtlicher) dürfen sich leider keine Includes und Conditions befinden!

Conditions

	# Mit Conditions kann man eine gewisse Dynamik im Typoscript-Code erreichen. Nur wenn die Bedingung eintritt, wird ein bestimmter Code ausgef&uuml;hrt. Die Conditions beginnen mit [Anweisung = Wert] und enden immer mit [global] alternativ [end]. Mittels [else] kann man noch Ausschlussanweisungen bestimmen. Mittels den logischen Operatoren &&, AND, ||, OR kann man Anweisungen verkn&uuml;pfen.
	[useragent = *MSIE 7*] || [useragent = *MSIE 6*]
		Anweisungen f&uuml;r IE7 und IE6
	[else]	
		Anweisungen f&uuml;r alle anderen Browser
	[global]
	[globalVar = TSFE:id = 64]
		Anweisungen f&uuml;r Seite mit Id 64
	[global]

	Get-Var:
	[globalVar = GP:L = 1]

	Constant:
	[globalVar = LIT:1 = {$TRACKING}]

Mehrzeilige Wertzuweisungen mit runden Klammern

	# Mit den Klammern () kann man mehrzeilige Wertzuweisungen erzeugen:
	lib.text = TEXT
	lib.text.value (
		Hier ist mein Text.
		Und der geht weiter.
		Und noch weiter.
	)

Alternativen mit Slashes

	# Mit // kann man Alternativen zuweisen:
	page.headerData.10.field = subtitle // title // navtitle

Wraps mit der Pipe

	# Mit dem Wrapzeichen kann man Inhalt mit Etwas umschlie&szlig;en:
	lib.text = TEXT
	lib.text.value = umschlossener Inhalt
	lib.text.wrap = <div>|</div>

verlinkte Bilder

	lib.image = IMAGE
	lib.image {
		file = fileadmin/templates/graphics/image.jpg
		wrap = <span class="image">|</span>
		imageLinkWrap = 1 {
		imageLinkWrap {
			enable = 1
			typolink {
			  parameter = 1
			  additionalParams = &L=1
			}
	  }
	}

Link auf Druck-Version in eigenem Fenster

	lib.pageprinter = IMAGE
	lib.pageprinter {
		file = fileadmin/templates/graphics/print.gif
		imageLinkWrap = 1
		imageLinkWrap {
			enable = 1
			typolink {
				parameter.data = page:uid
				parameter.wrap = |,98 760x600
				addQueryString = 1
				additionalParams = &print=1&no_cache=1
				JSwindow_params = status=0,menubar=0,scrollbars=1,location=0,toolbar=0
			}
		}
	}

Platzhalter für Sprachausgaben

	# Mit dem Typ LLL ist es m&ouml;glich sprachspezifische Inhalt aus Sprachdateien (z.B. von Extensions) auszulesen:
	LLL:EXT:[dateipfad]:[labelkey] also z.B.: LLL:EXT:tt_news/locallang.xml:pi_title
Mittels
	plugin.extensionkey {
		_LOCAL_LANG {
			de {
				back = zur&uuml;ck
			}
		}
	}
ist es möglich die Sprachwerte der Locallang von allen Extensions zu überschreiben. Austauschen muss man natürlich den Pluginnamen, die gewünschte Sprache, sowie die Key Value Werte dieses Beispiels. Sinnvoll ist dies auch für die Update-Fähigkeit, da bei einem Extension-Update die Sprachdateien überschrieben werden, aber deren TS-Konfiguration nicht.

Absolute Pfade erzeugen (Newsletter etc.)

	# http://www.typo3.net/tsref/functions/htmlparser/
	# f&uuml;r alles:
	page.stdWrap.HTMLparser=1
	page.stdWrap.HTMLparser.keepNonMatchedTags=1
	page.stdWrap.HTMLparser.tags.img.fixAttrib.src.prefixRelPathWith=http://deine-domain.com/
	page.stdWrap.HTMLparser.tags.a.fixAttrib.href.prefixRelPathWith=http://deine-domain.com/
	[
		# nur f&uuml;r bestimmten Marker:
		page.10.marks.CONTENT.stdWrap.HTMLparser.tags.a.fixAttrib.href.prefixRelPathWith=http://deine-domain/
		# oder (funktioniert nicht mit REAL URL!): 
		config.absRefPrefix = http://www.domain.de/
	]

==Entities==
zum Beispiel auf einen Text (stdWrap-Funktionalit&auml;t):
<pre class="brush: plain; toolbar: false;">
	stdWrap.HTMLparser.htmlSpecialChars = -1

Navigationen

Extra-Klasse, falls Menüpunkt Unterpunkte hat:
	IFSUB = 1     
	IFSUB.wrapItemAndSub = <li class="ifsub">|</li>
	ACTIFSUB = 1
	IFSUB.wrapItemAndSub = <li class="actifsub">|</li>

PHP-Scripte einbinden

	lib.tracking = PHP_SCRIPT
	lib.tracking.file = fileadmin/scripts/script.php
	# Varibalen im Typoscript &uuml;bergeben
	lib.tracking.varInt = 123
	lib.tracking.varStr = text
	# Variablen im PHP auslesen: $conf['varInt'], $conf['varStr']

Canonical-Tag

	## Canonical-Tag ##
	# Constants
	URL_HTTP_LIVE = http://www.domain.com/
	URL_HTTP_LIVE_COPY = http://www.domain.info/
	## Setup ##
    lib.canonicalTag = TEXT
    lib.canonicalTag {
      typolink.parameter.data = TSFE:id
      typolink.returnLast = url
      wrap = <link rel="canonical" href="{$URL_HTTP_LIVE}/|" />
    }
    [globalString = IENV:TYPO3_SITE_URL={$URL_HTTP_LIVE_COPY}]
      page.headerData.951 < lib.canonicalTag
    [global]

Wiki-Datei des Artikels herunterladen