Direkt zur Hauptnavigation springen Direkt zum Inhalt springen
Alle Beiträge

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 Hilfsfunktion getTSFE() war der letzte Rest davon und ist in TYPO3 14 endgültig entfallen; den Seitentyp liefert heute request?.getPageArguments()?.getPageType().
  • additionalHeaders ist ein Array. Die frühere Schreibweise additionalHeaders = Content-Type:... wird nicht mehr gelesen; der Wert steht unter einem Zahlenindex im Schlüssel header.
  • xhtml_cleaning und admPanel gibt es nicht mehr. Beide Angaben laufen ins Leere und können ersatzlos entfallen.
  • Die Adresse.?type=9818 funktioniert weiterhin, sieht aber nach 2010 aus. Mit einem PageType-Enhancer in der Site-Konfiguration wird daraus ein sprechender Pfad wie /feed.xml.
routeEnhancers:
  PageTypeSuffix:
    type: PageType
    default: ''
    map:
      'feed.xml': 9818

Und 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.