Viele TYPO3-Erweiterungen zur Generierung von RSS-Feeds können lediglich Seiten und tt_news-Artikel verwenden – das ist häufig nicht ausreichend. Eine Ausnahme bildet die Extension „in2rss“, welche sich recht flexibel mittels TypoScript konfigurieren lässt und Datensätze aus jeder beliebigen Tabelle darstellen kann.
Nach der üblichen Vorgehensweise zur Installation des Plugins, müssen noch die zu verwendendenTabellen konfiguriert werden. Die Grundkonfiguration samt einem vorkonfigurierten Beispiel lässt sich mittels Static Template einfügen – dieses erscheint mir allerdings als unpraktikabel, daher lege ich alle notwendigen Parameter selbst im Setup fest:
includeLibs.in2rss_main = EXT:in2rss/lib/class.tx_in2rss_main.php
rss = PAGE
rss {
typeNum = 100
config {
disableAllHeaderCode = 1
disablePrefixComment = 1
xhtml_cleaning = 0
admPanel = 0
no_cache = 1
}
10 = USER
10 {
userFunc = user_in2rss_main->showRSS
userFunc.config {
template = fileadmin/templates/webentwickler/in2rss/template.xml
sorting = DESC
limit = 20
uft8_coding =
10 {
settings {
table = pages
fieldTitle = title
fieldDescription = description
fieldBody = description
fieldImage = media
fieldSorting = crdate
fieldCrdate = crdate
pid =
pid_recursive = 0
additionalWhereClause = AND doktype IN (1) AND nav_hide = 0
cropDescription = 250
limit = 100
}
fields {
rssTitle = TEXT
rssTitle {
field = rssTitle
}
rssDescription = TEXT
rssDescription {
field = rssDescription
}
rssBody = TEXT
rssBody {
field = rssBody
}
rssSorting = TEXT
rssSorting {
field = rssSorting
}
rssCrdate = TEXT
rssCrdate {
field = rssCrdate
}
rssLink = TEXT
rssLink {
typolink {
parameter.field = uid
returnLast = url
}
}
}
}
}
}
}
[globalVar = GP:type = 100]
config.absRefPrefix = {$baseUrl}
[end]
Die Konfiguration der Tabelle erfolgt in den Zeilen 24-74, in diesem Fall werden alle nicht im Menü versteckten (nav_hide = 0) Seiten (table = pages) vom Typ Standard (doktype IN (1)) verwendet. Die restlichen Zeilen dieses Bereichs enthalten Parameterzuweisungen, damit diese im in Zeile 19 angegebenen Template verwendet werden können:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>webentwickler.at</title>
<link>http://www.webentwickler.at/</link>
<description>Blog für Webentwickler.</description>
<language>de</language>
<f:for each="{rssFeed}" as="rss"><f:if condition="{rss.rssTitle}">
<item>
<title>{rss.rssTitle}</title>
<description>{rss.rssDescription}</description>
<link>{rss.rssLink}</link>
<pubDate>{rss.rssCrdate}</pubDate>
</item>
</f:if></f:for>
</channel>
</rss>