Dies ist eine alte Version des Dokuments!
Marker und Subparts werden stets mit 3 Rautenzeichen eingeleitet und beendet. Die Großschreibung des Bezeichners ist keine zwingende TYPO3-Vorgabe, wird aber der Übersicht und Einheitlichkeit halber empfohlen. Der Name des Bezeichners ist frei wählbar. Subparts können in HTML-Kommentare gesetzt werden; Marker nicht. Die oft gesehenen Angaben begin und end dient nur der Übersicht und wird nicht von TYPO3 ausgelesen.
<!-- Inhalt der HMTL-Vorlage --> ... <div id="logo">###LOGO###</div> <!-- ###NAVIGATION### begin --> <ul id=“navigation“> <li><a href=“#“>Home</a></li> ... </ul> <!-- ###NAVIGATION### end --> ...
Bei Markern wird der Inhalt an die gewählte Stelle eingefügt. Bei Subparts wird der in der Vorlage dazwischenliegende Inhalt ersetzt. Auf diese Weise kann ein HTML-Template zu Layoutzwecken mit Beispiel-Inhalt gefüllt werden, der mit Subparts umschlossen wird und von TYPO3 ersetzt werden kann.
Im PAGE-Objekt wird ein TEMPLATE-Objekt erzeugt, dem die HTML-Vorlage zugewiesen wird. Marker und Subparts werden angesprochen und mit dem gewünschten Inhalt ersetzt:
page.10 = TEMPLATE page.10 { template = FILE template.file = fileadmin/vorlage.html marks.LOGO = IMAGE marks.LOGO { ... } subparts.NAVIGATION = HMENU subparts.NAVIGATION { ... } }
Durch workOnSubpart = DOKUMENT wird nur der Teil zwischen den beiden Subpart-Bezeichnern als Vorlage verwendet. Der Rest der Template-Vorlage (<head> <body>, <title> <meta> etc.) wird ausgeschlossen. Wichtig, da diese Elemente von TYPO3 immer selbst in den Quellcode der Seite eingefügt werden und über weiteres Typoscript angepasst werden können!
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Seitentitel</title> </head> <body> <!-- ###DOKUMENT### begin --> <div>###IMAGE###</div> <div>###CONTENT###</div> <div>###FOOTER###</div> <!-- ###DOKUMENT### end --> </body>
page.10 = TEMPLATE page.10 { template = FILE template.file = fileadmin/vorlage.html workOnSubpart = DOKUMENT marks { HEADER = IMAGE HEADER { ... } CONTENT < styles.content.get FOOTER = TEXT FOOTER { ... } } }