====== Marker und Subparts ====== **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// dienen nur der Übersicht und werden nicht von TYPO3 ausgelesen. **Das Templating mit Markern und Subparts gilt als veraltet!**\\ Für neue Websites ist die Verwendung von [[typo3:templating:fluidtemplate|Fluid-Templates]] dringend empfohlen.\\ In älteren, PiBase-basierten TYPO3-Extensions sind Marker leider immer noch anzutreffen. ... ... 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 { ... } } ===== Marker und workOnSubpart ===== Durch ''workOnSubpart = DOKUMENT'' wird nur der Teil zwischen den beiden Subpart-Bezeichnern als Vorlage verwendet. Der Rest der Template-Vorlage ('''' '''', '''' ''<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! <code html> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>Seitentitel
###IMAGE###
###CONTENT###
###FOOTER###
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 { ... } } } ---- ===== Marker innerhalb von Subparts nutzen ===== Standardmäßig wird der gesamte Teil zwischen zwei Subparts komplett ersetzt. Eventuell darin enthaltene Marker können daher nicht genutzt werden.\\ Um dies doch zu erreichen, kann mit ''substMarksSeparately = 1'' eine sequenzielle Ersetzung eingestellt werden: zuerst werden die Subparts ersetzt, dann die Marker. Wenn der gewünschte Marker __zusätzlich__ unter ''subparts.SUBPART'' an die gewünschte Stelle des Wertes gesetzt wird, kann er mit ''marks.MARKER'' ersetzt werden.
###MARKER###
page = PAGE page { 10 = TEMPLATE 10 { template = FILE template.file = fileadmin/vorlage.html substMarksSeparately = 1 subparts { SUBPART = TEXT SUBPART.value = Hello ###MARKER### } marks { MARKER = TEXT MARKER.value = world! } } } Ausgabe: Hello world! Selbstverständlich wird damit nur der Marker ersetzt. Das ''div''-Element wird komplett vom Subpart entfernt und muss mit einem ''wrap'' neu hinzugefügt werden.