Verwendung eigener Seitentypen in TYPO3

TYPO3 Seitentypen individuell behandeln
Foto: Stefanie, aboutpixel.de
Nach der Erstellung eines eigenen Seitentyps stellt sich natürlich die Frage, wie man diesen nutzen kann um seine - meist komplexere - TYPO3 Seite zu strukturieren.
Ich persönlich habe Seitentypen in meinen Projekten mit folgenden drei Methoden verwenden:
- alternatives TypoScript je nach Seitentyp
- einzelne Objekte unterscheiden sich je nach Seitentyp
- Menüpunkte werden je nach Seitentyp (der Seite des Menüelements) verschieden behandelt.
Alternatives TypoScript oder alternatives Template je nach Seitentyp mit Conditions
Über die Conditions, die wie immer ein hilfreiches Tool zur Verwendung unterschiedlichen TS Codes für unterschiedliche sind, kann man auch für verschiedene Seitentypen (in TYPO3 gespeichert in Tablle page Feld doktype ) verwenden.
[globalVar = TSFE:page|doktype = 30, TSFE:page|doktype = 32]
plugin.tx_automaketemplate_pi1.content.file = fileadmin/disco.html
temp.mainTemplate {
subparts.content < temp.content
subparts.oeffnungszeiten < temp.oeffnung
}
[globalVar = TSFE:page|doktype = 31]
plugin.tx_automaketemplate_pi1.content.file = fileadmin/bar.html
temp.mainTemplate {
subparts.content < styles.content.get
subparts.oeffnungszeiten < temp.oeffnung
}
[ELSE]
plugin.tx_automaketemplate_pi1.content.file = fileadmin/standard.html
[GLOBAL]
Achtung: es ist nicht möglich, die TYPO3 Condionions innerhalb eines Blocks zu verwenden.
richtig:
[globalVar = TSFE:page|doktype = 30, TSFE:page|doktype = 32]
temp.mainTemplate {
subparts.content < temp.content
subparts.oeffnungszeiten < temp.oeffnung
}
[globalVar = TSFE:page|doktype = 31]
temp.mainTemplate {
subparts.content < styles.content.get
subparts.oeffnungszeiten < temp.oeffnung
}
[GLOBAL]
falsch:
temp.mainTemplate {
[globalVar = TSFE:page|doktype = 30, TSFE:page|doktype = 32] #FALSCH
subparts.content < temp.content
subparts.oeffnungszeiten < temp.oeffnung_disco
[globalVar = TSFE:page|doktype = 31]
subparts.content < styles.content.get
subparts.oeffnungszeiten < temp.oeffnung_bar
[GLOBAL]
}
Seitentypunterscheidung in TYPO3 mit dem CASE-Objekt
Das CASE Objekt ist ebenfalls eine gute Möglichkeiten bei verschiedenen Seitentypen verschiedene Daten anzuzeigen. Einerseits ist das CASE-Objekt weniger flexibel als die TYPO3 Conditions, andererseits kann es auf einer beliebigen Tiefe der vVerschachtelung von Blöcken angewendet und auch kopiert werden.
Das CASE Objekt enthält immer einen Schlüssel (key), der hier, da es sich um den Seitentyp handelt natürlich auf “doktype” gesetzt werden muss und mehrere Objekte, deren Name dem Schlüssel entsprechen muss, also in diesem Fall der identifikationsnummer des Seitentyps.
temp {
oeffnungszeiten = CASE
oeffnungszeiten {
key.field = doktype
default = TEXT
default.value = keine Öffnungszeiten Verfügbar
30 < temp.oeffnung_disco
32 < temp.oeffnungszeiten.30
31 < temp.oeffnung_bar
}
}
Unterscheidung der TYPO3 Menüpunkte in einem TMENU nach Seitentyp
Wendet man das TYPO3 CASE Objekt (siehe oben) nun innerhalb eines Menüs an, so kann man eine Unterscheidung des Seitentyps für jeden Menüpunkt treffen und darüber die Seitentypen im Menü anzeugen.
Achtung nur Seitentypen kleiner 200 können im Menü angezeigt werden, Alle anderen Seitentypen werden als Sysordner angesehen. Seitentyp 199 wird für den Spacer verwendet und im Menü zwar angezeigt, aber Ihalte dieser Seite können nciht angezeigt werden.
temp.menu = HMENU
temp.menu {
1 = TMENU
1 {
expAll = 1
wrap = <ul>|</ul>
NO {
doNotLinkIt = 1
stdWrap.cObject = CASE
stdWrap.cObject {
key.field = doktype
default = TEXT
default {
field = nav_title // title
wrap = <li>|</li>
typolink = uid
}
30 = TEXT
30 {
field = nav_title // title
wrap = <li class="disco">|</li>
typolink = uid
}
31 = TEXT
31 {
field = nav_title // title
wrap = <li class="bar">|</li>
typolink = uid
}
32 < temp.menu.1.31
}
}
}
}
CASE, CASE Objekt, Conditions, custom page types, doktype, Dokumenten Typ, eigene Seitentypen, globalVar, globalVar TSFE page, page, Seitentyp, Seitentyp mit Conditions, TYPO3, TYPO3 Conditions, TYPO3 Seitentyp, TypoCcript




