====== 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.
...
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 (''
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.