TYPO3 initialisiert nicht automatisch, was im Frontent ausgegeben werden soll, der Befehl dafür muss explizit gegeben werden. Dies geschieht mit “page”:
page = PAGE
Das kleingeschriebene “page” hat im Typoscript die Rolle eines “Top Level Objects”. Diesen Objekten kommt in der Regel immer eine vordefinierte Rolle zu, sprich sie dienen zur Realisierung bestimmter Objekttypen. Die Variable “page” soll also als Inhaltsseite definiert werden, sprich dazu dienen, Content im Frontend darzustellen. Dazu wird der Variable der Objekttyp “PAGE” zugewiesen.
In einfachen Worten: Alles, was in meine vordefinierte Variable “page” kommt, soll dazu dienen, meinen Content im Frontend darzustellen, daher weise ich ihr den Objekttyp einer “Seite” zu.
Nummerierung
Unserem Objekt “page” können wir beliebig viele Inhalte zuordnen, indem wir nach dem Namen und durch einen Punkt getrennt Nummerierungen vergeben. Im ersten Beispiel wollen wir lediglich EINE Textzeile darstellen:
page = PAGE
page.10 = TEXT
page.10.value = HELLO WORLD!
Die Ausgabe im Frontend sieht so aus:
Nun könnte man sich fragen, warum wir mit der Nummer 10 beginnen - die erste Textzeile sollte doch die Nummer 1 haben, oder nicht? Grundsätzlich richtig, doch ist es ratsam, sich etwas “Spielraum” zu lassen, wenn man später realisiert, dass davor doch noch etwas hin soll. Die einzelnen Elemente werden nach Nummerierungs- und nicht nach Code-Zeilen-Reihenfolge im Frontend ausgegeben. Die beiden untenstehenden Beispiele sehen im Frontend exakt gleich aus:
page = PAGE
page.5 = TEXT
page.5.value = HALLO!
page.10 = TEXT
page.10.value = HELLO WORLD!
page = PAGE
page.10 = TEXT
page.10.value = HELLO WORLD!
page.5 = TEXT
page.5.value = HALLO!
In beiden Fällen sehen wir folgendes im Frontend:
Wie wir sehen, wird das “Hallo!”, immer vor das “Hello World” positioniert, ganz egal, in welcher Reihenfolge wir die Code-Zeilen schreiben. Optisch ansprechend ist das Ganze auch nicht, da die beiden Textelemente ohne Abstand oder ähnlichem direkt hintereinander dargestellt werden. Etwas ansprechender wird unsere Darstellung, wenn wir z.B. das “Hallo” zur Überschrift machen:
page = PAGE
page.10 = TEXT
page.10.value = HELLO WORLD!
page.5 = TEXT
page.5 {
value = HALLO!
wrap = <h1>|</h1>
}
Hier haben wir gleich zwei Dinge gemacht: Einerseits haben wir, wie auf der vorangegangenen Seite gelernt, die beiden Attribute innerhalb der geschwungenen Klammern notiert, damit wir uns in diesen Zeilen jeweils das “page.5” sparen. Andererseits haben wir mit dem Attribut “wrap” einen HTML-Code um dieses Element gelegt. Den “Platzhalter” für den Inhalt in diesem Befehl ist der senkrechte Strich.
Im Frontend sehen wir nun folgendes:
Bisher haben wir das Content-Objekt “TEXT” kennengelernt. Auf der kommenden Seite werden wir wir uns weitere gängige Content-Objekte anschauen.