Startseite | Impressum | Kontakt | Sitemap

Objekte

Wer jemals systematisch versucht hat, sich Typo3 zu nähern, kennt folgenden Code:

 page = PAGE

So sinnlos dies zunächst klingen mag. Ich denke da an Magritte mit seinem Bild: Ceci n'est pas un pomme. (Für die, die das Bild nicht kennen: ist natürlich ein Apfel, frz. pomme, zu sehen.) Egal, ich schweife ab. Mit obiger Aussage wird einer Variablen (page) ein Objekt (PAGE) zugeordnet. Und das deshalb, damit Typo3 überhaupt begreift, dass hier eine Seite angelegt werden soll. Steht deswegen meist ganz oben auf den Scripts für die einzelnen Seiten. Und wer eine neue Seite anlegt und unter Template in den Scriptcode sieht, wird diese Botschaft auch wiederfinden.

Dabei ist es völlig wurscht, ob auf der linken Seite der Gleichung nun page steht, oder pomme, oder blubb. Wirklich, diese Zuweisung funktioniert auch mit blubb - allerdings nur, wenn das konsequent die Seite über beibehalten wird. Deswegen heißt das Ding Variable: frei wählbar.

Bei PAGE nun handelt es sich um das Objekt. Dies wiederum ist klar definiert und darf nicht frei benannt werden, weil Typo3 sonst nicht kapiert, was man von ihm will. Fieserweise gibt Typo3 keine Fehlermeldung aus, wenn man ein Objekt aufruft, welches es in Wirklichkeit gar nicht gibt. Oder das eigentlich leicht anders geschrieben werden möchte. Typo3 schweigt pikiert, ignoriert die Zuweisung einfach und führt nur den Teil aus, den es versteht. Das macht manchmal Probleme beim Aufspüren von Fehlern.

Übrigens ist PAGE eines der sogenannten Top-Level-Objekte. Im Setup befindet es sich immer an erster Stelle, nicht mitten in einem dieser Bandwurm-Strings. Manche TLOs können gemeinerweise beides: am Anfang und in der Mitte stehen. Das ist etwas unübersichtlich gelöst. Andere TLOs sind config, constants, resources, sidetitle und types. Wobei die letzten drei nur ausgelesen werden können, nicht aber definiert.

Ebenfalls zur Sammlung der TLOs gehört FEData, womit definiert wird, ob im Frontend eingegebene Daten via GET oder POST weitergegeben werden sollen. Diejenigen, die früher mit HTML-Formularen herumgespielt haben, werden sich erinnern.

Und natürlich tt_*. Wer schon ein wenig mit Typo3 herumgespielt hat, wird das kennen. Etwa zum Anlegen einer Sidemap:

tt_content.menu.20.2.special = directory
tt_content.menu.20.2.special.value.field = pages

tt_content ist hier das Top-Level-Objekt, das eigentliche Objekt ist das menu.20.2 - unsere Sidemap. Mit special sage ich an, dass ich gern ein Inhaltsverzeichnis hätte. Und die Eigenschaft dieses Verzeichnisses soll sein, dass die Werte aus dem Feld pages als Seiteninhalt ausgegeben werden. Oder so ähnlich.

Eine Liste dieser Top-Level-Objekte findet sich übrigens in der TSref unter (derzeit) Punkt 1.7. Leider auf englisch, was den Genuss ev. ein wenig schmälert. Der Versuch einer deutschen Beschreibung findet sich bei Mittwald auf typo3.net als Punkt 3.

Neben diesen TLOs gibt es auch "normale" Objekte wie TXT, HTML oder IMAGE. Die TSref listet 28 solcher Inhaltselemente (cObjects). Diese stehen nicht auf der obersten Ebene, sondern sind ein wenig eingeschachtelt, normalerweise hinter der fortlaufenden Nummerierung. Folgendes Beispiel kennt jeder, der schon mal in ein typo3-Handbuch geschaut hat:

page.10 = TEXT
page.10.value = Hier steht mein Text!
page.10.value.case = upper

Ich habe also auf meinem TLO page unter 10 ein cObject Text angelegt und ihm einen Wert zugewiesen. Dieser Text wird nun in Großbuchstaben "gewrapt" - mit dem Befehl: Bitteschön in Großbuchstaben (->upper) umschlossen.