In diesem Tutorial wird gezeigt, wie man PageTypes via Typoscript generiert, um z.B. Content in anderen Content Types bereitzustellen. Dies kann dann für APIs oder RSS Feeds genutzt werden. Vielleicht will man per Scaping Tool auch auf diese Daten speziell zugreifen.
Anwendungsbeispiel mit eigenem Fluid-Template
In dem Beispiel dieses Tutorials wollen wir ein dediziertes FLUIDTEMPLATE im Text/Html Content Type ausgeben, um unser eigentliches FLUIDTEMPLATE nicht zu beeinflussen. Im Fluid Template wird dann einfach <div class="greeting">hallo Welt</div> ausgegeben. Der Vorteil liegt darin, dass wir auch mit einem Extbase Controller geziehlte Datenverarbeitung/Bereitstellung somit machen könnten.
Hier das Beispiel mit dem eigenen FLUIDTEMPLATE:
meinPageType = PAGE
meinPageType {
#Damit unser PageType via page.abc/?type=1999 aufrufbar gemacht wird
typeNum = 1999
config {
#Unnötige und Vorhandene Einstellungen entfernen, um Plain zu bleiben
disableAllHeaderCode = 1
disablePrefixComment = 1
sendCacheHeaders = 0
xhtml_cleaning = 0
admPanel = 0
debug = 0
#ggf. Cache aktivieren/deaktivieren je nachdem, wie schnell die Daten sich ändern
no_cache = 0
#Seiten Content-Type ändern, (Möglich ist z.B. auch text/json, text/plain, etc)
additionalHeaders {
10.header = Content-type:text/html
}
}
#Was möchten wir im PageType bereitstellen? In diesem Beispiel einfach ein Hallo Welt DIV
10 = FLUIDTEMPLATE
10 {
#Wichtig: MeinPageTypeTemplate.html im Pfad erstellen!
templateName = meinPageTypeTemplate
templateRootPaths {
10 = EXT:meineExt/Resources/Private/Extensions/PageType
}
}
}
Wie bereits erwähnt können wir hier alles definieren, was uns das TypoScript bereitstellt, also auch ganze PAGE, CONTENT, etc. Elemente.
Ruft man jetzt https://www.page.abc/?type=1999 auf, so begrüßt uns das FluidTemplate, welches wir unter 10 definiert haben.
URL mit RouteEnhancer lesbar machen
Damit man den gewünschten PageType jetzt nicht immer mit /?type=1999 aufrufen muss, kann man in der Siteconfiguration YAML Datei einen RouteEnhancer anlegen und auf den PageType zeigen:
base: 'https://www.meineseite.abc/'
rootPageId: 1
...
routeEnhancers:
PageTypeSuffix:
type: PageType
map:
hallowelt: 1999
Nachdem der Cache geleert ist, kann man nun https://www.meineseite.abc/hallowelt aufrufen, und bekommt das FLUIDTEMPLATE z.B. zu sehen.