Sie befinden sich hier

Inhalt

RSS/XML-Newsfeeds erstellen

XML Newsfeeds wie RSS2 und RDF ermöglichen es den Nutzern aktuellen Nachrichten einer Website zu abonnieren. Ohne die Seite zu besuchen kann den Nutzern aktueller Inhalt geliefert werden, den Sie bei Bedarf auf der Website komplett lesen können.

RSS-Feed in Firefox-Adresszeile

RSS-Feed-Anzeige in Firefox

Komfortabel geht die Einrichtung eines XML-Newsfeeds wie RSS2 mit der Typo3 Extension tt_news. Dieses Anleitung setzt daher ein funktionsfähig eingerichtetes tt_news Plugin voraus und erklärt darauf aufbauen wie man schnell verschiedene Feeds einrichten kann.

Constanten-Konfiguration im Template der Rootseite

Im ersten Schritt muss im Template der Rootseite bei "Include static (from extensions)" die statische Vorlage "News-feed (RSS-Feed,RDF,ATOM) (tt_news)" hinzugefügt werden. Anschließend werden die Konstanten im Template der Rootseite angepasst. Hier eine Bespielkonfiguration als Ergänzung zur bisherigen tt_news Konfiguration.

#PID mit der Listenanzeige des tt_news Plugins - ggf. schon vorhanden
plugin.tt_news.pid_list = 10
#PID mit der Singleanzeige des tt_news Plugins - ggf. schon vorhanden
plugin.tt_news.singlePid = 11

#Maximale Anzahl der ausgelieferten Artikel im XML
plugin.tt_news.displayXML.xmlLimit = 10
#Aktivierung des Cachings
plugin.tt_news.displayXML.xmlCaching = 1
#Basis-URL für die Verlinkung
plugin.tt_news.displayXML.xmlLink = www.meine-domain.de
#Titel des XML-Feeds
plugin.tt_news.displayXML.xmlTitle = www.meine-domain.de: Mein Thema
#Beschreibung des XML-Feeds
plugin.tt_news.displayXML.xmlDesc = Beschreibung
#Sprache des XML-Feeds
plugin.tt_news.displayXML.xmlLang = de

Setup-Konfiguration im Template der Rootseite

Im Setup werden nun die verschiedenen Typen der XML-Newsfeeds eingerichtet. Als Grundlage dient hier rss2, dessen Konfiguration für die anderen Feeds benutzt wird. Hierfür wird folgendes TS ins Setup eingetragen, wobei die Kommentare entfernt werden können.

RSS2

rss2 = PAGE
rss2 {
  typeNum = 100
  #Leeren von 10
  10 >
  #Befüllen mit tt_news
  10 < plugin.tt_news
  #Leeren von pid_list
  10.pid_list >
  #Wert für pid_list aus den Constanten
  10.pid_list = {$plugin.tt_news.pid_list}
  #Wert für singlepid aus den Constanten
  10.singlePid = {$plugin.tt_news.singlePid}
  10.defaultCode = XML
  #Format festlegen - hier rss2
  10.displayXML.xmlFormat = rss2
  config {
    disableAllHeaderCode = 1
    additionalHeaders = Content-type:text/xml
    no_cache = 1
    xhtml_cleaning = 0
  }
}

Wer nun weitere XML-Newsfeeds in Typo3 einrichten will, kann nun rss2 wieder verwenden und muss nur noch die typeNum und das xmlFormat ändern.

RSS 0.91

rss091 = PAGE
rss091 < rss2
rss091 {
  typeNum = 101
  10.displayXML.xmlFormat = rss091
}

RDF

rdffeed = PAGE
rdffeed < rss2
rdffeed {
  typeNum = 102
  10.displayXML.xmlFormat = rdf
  #ggf. noch ein Feedimage vergeben
  #10.displayXML.xmlIcon = fileadmin/templates/img/rdf.gif
}

Atom1

atom1 = PAGE
atom1 < rss2
atom1 {
  typeNum = 103
  10.displayXML.xmlFormat = atom1
}

Aufrufbar sind die XML-Feeds nun über www.meine-domain.de/index.php und die anderen vergebenen typeNum.

RSS für bestimmte Newskategorien

Will man kategoriespezifische RSS-Feed-Feeds erstellen, kann man mit folgendem Aufruf die RSS-Feed Nachrichten mit News aus einer bestimmten Kategorie anzeigen lassen:

www.domain.de/index.php

x entspricht hier der Kategorie-Nummer.
Meinen Dank an Tobi, der diese Info als Kommentar gepostet hat.

Archivierte News aus RSS entfernen

Standardmäßig werden alle tt_news Einträge im RSS-Feed-Feed dargestellt. Möchte man nun die archivierten News aus dem XML-Feed entfernen hilft folgende TS Ergänzung im obenen gezeigten Beispiel:

rss2 {
...
# archivierte News nicht anzeigen
10.archive = -1
...
}

Der Eintrag entfernt die archivierten News aus dem XML-Feed.

Konfiguration für XML-Feeds über RealURL

Eine schönere URL bekommt man mit RealURL. Hierfür gibts folgende Konfiguration mit der man seine eigene ergänzen kann.

'fileName' => array (
            'defaultToHTMLsuffixOnPrev' => true,
            'index' => array (
                'rss.xml' => array (
                    'keyValues' => array (
                        'type' => '100',
                    ),
                ),
                'rss091.xml' => array (
                    'keyValues' => array (
                        'type' => '101',
                    ),
                ),
                'rdf.xml' => array (
                    'keyValues' => array (
                        'type' => '102',
                    ),
                ),
                'atom.xml' => array (
                    'keyValues' => array (
                        'type' => '103',
                    ),
                ),
            ),
        ),

Sonstiges

Einige Browser (z.B. Firefox) stellen beim surfen in der Adresszeile auch vorhandene RSS-Feed-Feeds mit einem Symbol zur einfachen Abbonierung dar. Folgendes TS für das Setup der Rootseite bindet den Link zum RSS-Feed-Feed ein (es wird RealURL benutzt):

page.headerData.80 = HTML
page.headerData.80.value = <link rel="alternate" type="application/rss+xml" title="RSS-Feed von meine-domain.de" href="http://www.meine-domain.de/rss.xml">

Kontextspalte