====== Top Level Objects ====== Top Level Objects werden im Setup-Feld verwendet. Sie beinhalten die einzelnen cObjects und Einstellungen der Website. ---- ===== CONFIG ===== In ''config'' werden die generellen Einstellungen der Website vorgenommen: Sprache, Doctype, Seitenindexierung [[http://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html|und vieles mehr]]. Auch das Admin-Panel und das Caching können hier (de)aktiviert werden. ---- ===== CONSTANTS ===== Die Konstanten im //Setup//-Feld können in **Inhaltselementen** verwendet werden. Voraussetzung ist, dass an einer Stelle ''parseFunc'' mit ''constants=1'' konfiguriert wurde (in css_styled_content enthalten). Die Schreibweise der Konstanten ist Case-Sensitive. In den Inhaltselementen werden die gesetzten Konstanten mit je drei Rauten umschlossen - wie bei Markern und Subparts. constants.TheBoss = Bruce Springsteen # Auslesen im Inhaltselement: Jetzt Karten sichern für ###TheBoss###. Nicht zu verwechseln mit dem Feld //Constants// __oberhalb__ des //Setup//-Feldes. Die dort angelegten Konstanten sind nur im //Setup//-Feld für **TypoScript** verwendbar. ---- ===== PAGE ===== ''page'' beinhaltet alle Objekte, die im Frontend ausgegeben werden. Angefangen bei Header-Daten wie CSS und JavaScript, Meta-Tags, bis zu den eigentlichen Inhalten, den [[typo3:about:cobject|cObjects]]. In einem TypoScript-Template können mehrere PAGE-Objekte definiert sein, z.B. für die normale Browseransicht, eine Printversion und den RSS-Feed. Diese PAGE-Objekte müssen sich aber im Seitentyp (''typeNum'') unterscheiden. Die Ausgabe wird dann über den GET-Parameter ''&type='' gesteuert. Wenn der Seitentyp nicht definiert ist, gilt immer der Standard ''0'' als gesetzt. Falls bei zwei oder mehr PAGE-Objekten der Seitentyp fehlt, würden die jeweiligen Definitionen alle derselben Ausgabe zugeordnet: Werte würden ggf. überschrieben und Objekte ergänzt. Die Namen der PAGE-Objekte sind frei wählbar. Es ist aber üblich, für die normale Ausgabe //page// zu verwenden. page = PAGE page { # typeNum = 0 [...] } print = PAGE print { typeNum = 1 [...] } ---- ===== plugin ===== Installierte Extensions liefern Eigenschaften und Werte mit den //Static Templates// aus. Diese werden unterhalb von ''plugin'', folgend vom Namen der Extension, abgelegt und können vom Anwender angepasst werden. plugin.tx_felogin_pi1.showLogoutFormAfterLogin = 0 ---- ===== includeLibs ===== Mit ''includeLibs'' können externe PHP-Dateien eingebunden werden, dessen Funktionen dann in TypoScript verfügbar sind. Existiert auch als Eigenschaft von ''page''; bei identischen Objektnamen hat letztere Vorrang. Im Beispiel wird kein eigenes Skript verwendet, sondern eins aus der Extension //tt_news//: # Einbindung der PHP-Datei mit den angegebenen Klassen. # 'EXT:' gibt an, dass sich die Erweiterung in einem der Extension-Ordner typo3/sysext/, typo3/ext/ oder typo3conf/ext/ befindet. includeLibs.ts_news = EXT:tt_news/pi/class.tx_ttnews.php # Der Name 'ts_news' könnte beliebig verändert werden, also z.B. auch: includeLibs.1 = EXT:tt_news/pi/class.tx_ttnews.php page.10 = USER # Aus der PHP-Klasse 'tx_ttnews' wird die Funktion 'main_news' aufgerufen. page.10.userFunc = tx_ttnews->main_news ---- ===== lib ===== Mit ''lib'' lassen sich TypoScript-Elemente anlegen, die von anderen Objekten kopiert und referenziert werden können. Bei einer **Kopie** (Operator ''<'') wird der aktuelle Stand des Objekts eingefügt. Eine **Referenz** (Operator ''=<'') ermöglicht es, nachträgliche Änderungen des Ursprungsobjekts zu übernehmen. Im Beispiel wird beim Objekt ''lib.helloworld'' nach ''page'' der Wrap verändert. Durch die Referenzierung unter ''page.10'' wird die Änderung dort übernommen. ''page.20'' ist lediglich eine Kopie; hier wird das Objekt so übernommen, wie es zum Zeitpunkt des Parsens definiert war. lib.helloworld = TEXT lib.helloworld { value = Hello world! wrap =

|

} page = PAGE page { 10 =< lib.helloworld 20 < lib.helloworld } lib.helloworld.wrap =

|

Ausgabe:

Hello world!

Hello world!

---- ===== styles, temp ===== Diese beiden TLO werden für temporär benötigte TypoScript-Elemente verwendet. Nach dem Parsen werden sie nicht zusammen mit dem Template im Cache gespeichert, daher können sie nicht referenziert werden. Auch im TypoScript Object Browser sind sie nicht zu finden. Im folgenden Beispiel versucht das cObj ''10'', ein temporäres Objekt zu referenzieren, was nicht möglich ist. Es wird in diesem Fall auch keine Kopie erzeugt! Daher wird nur das cObj ''20'' ausgegeben. temp.helloworld = TEXT temp.helloworld { value = Hello world! wrap =

|

} page = PAGE page { 10 =< temp.helloworld 20 < temp.helloworld } temp.helloworld.wrap =

|

# Ausgabe:

Hello world!