Home | Sitemap | Glossar | Impressum

RSS-Feed bereitstellen

RSS-Feeds mit TYPO3 bereitstellen

Ein RSS-Feed ist ein plattformunabhängiges und auf XML basierendes Format. Die Abkürzung RSS steht für „Really Simple Syndication“. Mit RSS-Feeds lassen sich die letzten Neuigkeiten von interessanten Inhalten von der Website bereitstellen. Sie sind sehr einfach aufgebaut und können so von verschiedenen RSS-Readern auf einfacher Art und Weise dargestellt werden.

Wie lässt sich ein RSS-Feed in TYPO3 erstellen?

Mit TypoScript lassen sich die verschiedenen Inhalte einer TYPO3-Installation als Feed bereitstellen. Möchtest Du nur die letzten Nachrichten als Feed bereitstellen, dann kann auch auf die Extension tt_news zurückgegriffen werden. Dazu später mehr.

Mit TypoScript beliebige Inhalte bereitstellen

Für die Generierung erstelle eine neue Seite mit einem neuen TypoScript-Template. Das folgende Script generiert ein Inhalt mit den in den letzten 7 Tagen geänderten Seiten. Für die richtige Ausgabe muss TYPO3 angewiesen werden, XML-Strukturen und nicht HTML-Strukturen auszugeben. Das lässt sich mit den ersten 4 Zeilen bewerkstelligen. Anschließend wird ein neues PAGE-Objekt erzeugt. Dabei werden die entsprechenden Felder mit den richtigen Wraps umschlossen. Neben Seiten lassen sich auch tt_content oder eigene Inhalte aus Extensions mittels des CONTENT-Objekts erzeugen.

config.disableAllHeaderCode = 1
config.metaCharset = utf-8
config.additionalHeaders = Content-Type:text/xml:charset=utf-8
config.xhtml_cleaning = 0

page >
page = PAGE
page.wrap = <?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel>|</channel></rss>
page.5 = TEXT
page.5.value (
<title>Die letzte Neuigkeiten</title>
<link>http://www.domain.tld</link>
<description>Die letzten Beiträge</description>
<language>de</language>
<copyright>Deine Bezeichnung</copyright>
)

page.7 = TEXT
page.7.noTrimWrap = |<pubDate>| +0100</pubDate>|
page.7.data = date:D, d M Y H:i:s

page.10 = HMENU
page.10 {
special = updated
special {
value = 1
mode = tstamp
maxAge = 3600*24*7
}

1 = TMENU
1 {
noBlur = 1
NO {
stdWrap.cObject = COA
stdWrap.cObject {
stdWrap.wrap = <item>|</item>
1 = TEXT
1 {
field = title
htmlspecialchars = 1
wrap = <title>|</title>
}
2 < .1
2.field = abstract // description
2.wrap = <description>|</description>
3 < .1
3.field = uid
3.wrap = <guid>page-http://www.domain.tld/|</guid>
4 = TEXT
4 {
typolink.parameter.field = uid
typolink.returnLast = url
wrap = <link>http://www.domain.tld/|</link>
5 < .1
5.field = tstamp
5.wrap = <pupDate>|</pubDate>
5.strftime = %d.%m.%Y %H:%i
}
}
}
}
}

Wie lässt sich ein RSS-Feed mit tt_news erstellen?

Anstelle des obigen beschriebenen Scripts fügst Du zunächst das statische TypoScript-Template „News-Feeds (RSS, RDF, ATOM)“ der Extension unter dem Reiter „Includes“ hinzu. Falls das Template gar nicht oder falsch eingebunden wurde, erscheint im Browser ein Hinweis.

RSS-Feed konfigurieren.

Durch das TypoScript wird ein neues PAGE-Objekt mit dem Type (100) angelegt und tt_news „XML-fähig“ gemacht. Im Constants-Editor lässt sich im Bereich displayXML u.a. das Format, der Titel und den Link zur Website einstellen:

plugin.tt_news.displayXML {
xmlTitle = Neues aus der Welt von TYPO3
xmlDesc = RSS-Feed von TYPO3
xmlLink = http://www.domain.tld/
xmlLang = de
xmlIcon = fileadmin/favicon.ico
}

Den Link zum RSS-Feed setzen

Als letzten Schritt fehlt noch der Link im HTML-Header. Dazu kann folgendes Script verwendet werden:

page.headerData {
1000 = TEXT
1000 {
data = TSFE:id
wrap = <link href="index.php?id=|&type=100" rel="alternate" title="RSS-Feed" type="application/rss+xml" />
}
}

Weitere Infos in der offiziellen Dokumentation.

RSS-Feed mit rgnewsce erweitern

Wie in diesem Artikel beschrieben, lässt sich tt_news um beliebige Eingabefelder erweitern. Um diese Felder auch im RSS-Feed zu berücksichtigen bedarf es sich derzeit noch der Änderung des XML-Templates rss_2.tmpl, dass Du kopierst und im Constants-Editor angibst:

plugin.tt_news.displayXML.rss2_tmplFile = fileadmin/rss_2.tml

Die neuen Felder werden durch generische Marker in das Template ergänzt, z.B. ###GENERIC_MORE_DESCRIPTION###. Anschließend im Setup noch das neue Feld definieren:

xmlnews.10 {  
genericmarkers {   
more_description = TEXT   
more_description {       
field = bodytext // title   
}
}
}

Wobei xmlnews das PAGE-Objekt mit dem Type 100 ist.

Schnellkontakt

Dennis Oezet
WebEntwicklung & Design
Tel: 0160 / 933 679 69
info(at)doemedia(dot)de



Sofortanfrage

Ich interessiere mich für







Meine Kontaktdaten