Hallo,
ich bin auch neu in der TYPO3 Fangemeinde und stolpere gleich über die einfachsten Dinge.
Meine Frage: Wie kann ich einer einzelnen Unterseite per Typoscript eine andere HTML-Vorlage zuweisen als die in dem TypoScript Template vorgegebene?
Ich stelle mir das so vor, dass ich bei den Seiteninformationen beim Reiter Optionen ein kleines Script einfüge, welches dann für diese Seite meine template_extra.html aufruft.
Vielen Dank für Eure Unterstützung!
cmsnewbie
Hallo,
viele Wege führen nach Rom...
Man könnte auf der entsprechenden Seite einfach die Datei in einem "Extension-Template" im Feld "SETUP" angeben. Irgendwie sowas:
page = PAGE
page.bodyTag = <body>
page.typeNum = 0
page.10 = TEMPLATE
page.10.template = FILE
page.10.template.file = template_extra.html
Alternativ kann man noch mit sogenannte Conditions arbeiten (https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Conditions/Index.html):
- Wenn meine aktuelle Seite auf einer bestimmten Ebene ist
[treeLevel = 1]
page.10.template.file = template_extra.html
[global]
- Wenn meine aktuelle Seite eine bestimmte ID hat
[globalVar = TSFE:id = 25]
page.10.template.file = template_extra.html
[global]
- Wenn die Seite ein bestimmtes Layout hat
[globalVar = TSFE:page|layout = 0]
page.10.template.file = template_extra.html
[global]
(das TypoScript müsste natürlich auf dein Page-Object angepasst werden - ich hab hier einfach mal eins so notiert.)
Letztes Beispiel entspricht evtl. deinen Vorstellungen. Hier wird das Feld "layout" ausgewertet. Das steht in den Seiteneigenschaften unter Allgemein, wenn man die "zweite Optionspalette anzeigen" lässt. Was in dem Feld steht, kann man modifizieren im Page-TypoScript:
TCEFORM {
# Tabelle "pages"
pages {
layout {
# Layout in den Seiteneigenschaften (Namen aendern)
altLabels {
0 = Standard
1 = Startseite
}
# Layouts in den Seiteneigenschaften hinzufuegen
addItems {
#4 = 4 Spalten
#5 = Layout 25 / 25 / 50
#6 = Layout 25 / 25 / 25 / 25
#7 = Layout 100 (ohne Abstand)
#8 = Finder
}
# Layouts entfernen
removeItems = 2,3
}
}
}
Hallo sunixzs,
vielen Dank für die Arbeit die du dir gemacht hast! Leider ist das alles noch viel zu Abstrakt für mich.
Ich habe mich wohl auch verkehrt ausgedrückt. Mein Problem ist, dass ich eine Unterkategorie mit eigenem TS Template habe. Hier soll die Kategoriestartseite mit einem eigenem HTML-Template starten.
So sieht das zur Zeit bei mir im TS-Setup aus:
------------
// CSS und Templatevorlage einbinden
page = PAGE
page {
typeNum = 0
10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/templates/ts/template_kategorie.html
includeCSS {
file1 = fileadmin/templates/css/diese_kategorie.css
file2 = fileadmin/templates/css/form.css
}
10.workOnSubpart = DOKUMENT
10.marks
------------
Ich möchte nur, dass die Startseite dieser Kategorie sich die template_extra.html nimmt und die Unterseiten die template_kategorie.html nehmen.
Wie kriege ich das hin??
Gruß
cmsnewbie
wie beschrieben (falls ich das so verstanden habe):
page = PAGE
page {
typeNum = 0
includeCSS {
file1 = fileadmin/templates/css/diese_kategorie.css
file2 = fileadmin/templates/css/form.css
}
10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/templates/ts/template_kategorie.html
10.workOnSubpart = DOKUMENT
10.marks {
}
}
# Entweder so (0 = Level in Seitenbaum)
[treeLevel = 0]
page.10.template.file = fileadmin/templates/ts/template_extra.html
[global]
# oder so (25 = ID bzw. UID der Startseite)
[globalVar = TSFE:id = 25]
page.10.template.file = fileadmin/templates/ts/template_extra.html
[global]
Für alle Seiten wird "template_kategorie.html" benutzt - außer für Seiten im Seitenbaum in der Ebene 0 (das ist ja die Startseite) und nicht für die Seite mit der UID 25 in diesem Fall.
Hallo sunixzs,
vielen Dank! Es funzt - echt super!
Jetzt konnte auch ich verstehen, wie du es gemeint hast 🙂
Man, was bin ich erleichtert ...
Gruß
cmsnewbie