TYPO3: Eigene RSS-Seite mit TypoScript
Ein RSS-Feed ist in TYPO3 keine eigene Erweiterung, sondern eine zweite Ausgabe derselben Seite: ein PAGE-Objekt mit eigener typeNum, das XML ausliefert statt HTML. Das Grundgerüst:
feedSeite = PAGE
feedSeite {
typeNum = 9818
10 = USER_INT
10 {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = News
pluginName = Pi1
controller = News
action = list
view < plugin.tx_news.view
persistence < plugin.tx_news.persistence
settings < plugin.tx_news.settings
settings {
limit = 30
format = xml
}
}
}
[request?.getPageArguments()?.getPageType() == '9818']
config {
disableAllHeaderCode = 1
metaCharset = utf-8
disablePrefixComment = 1
additionalHeaders.10.header = Content-Type: text/xml; charset=utf-8
}
[global]Vier Dinge, die sich geändert haben
- Die Bedingung.
[globalVar = TSFE:type = 9818]stammt aus der Zeit vor TYPO3 9. Seitdem werden Bedingungen mit der Symfony Expression Language geschrieben. Die HilfsfunktiongetTSFE()war der letzte Rest davon und ist in TYPO3 14 endgültig entfallen; den Seitentyp liefert heuterequest?.getPageArguments()?.getPageType(). additionalHeadersist ein Array. Die frühere SchreibweiseadditionalHeaders = Content-Type:...wird nicht mehr gelesen; der Wert steht unter einem Zahlenindex im Schlüsselheader.xhtml_cleaningundadmPanelgibt es nicht mehr. Beide Angaben laufen ins Leere und können ersatzlos entfallen.- Die Adresse.
?type=9818funktioniert weiterhin, sieht aber nach 2010 aus. Mit einemPageType-Enhancer in der Site-Konfiguration wird daraus ein sprechender Pfad wie/feed.xml.
routeEnhancers:
PageTypeSuffix:
type: PageType
default: ''
map:
'feed.xml': 9818Und die News-Erweiterung?
Der Teil oberhalb der Bedingung — extensionName, controller, settings — gehört der Erweiterung, nicht TYPO3. Deren Einstellungen haben sich seit der ersten Fassung dieses Beitrags mehrfach geändert, unter anderem die Angaben zum Kanal. Die aktuellen Namen stehen in ihrer eigenen Dokumentation; das Gerüst drumherum bleibt das hier gezeigte.
Geprüft mit TYPO3 14.