Mittels der Typo3-Extension “tt_news” lassen sich nicht nur Nachrichten in eine Typo3-Seite integrieren, diese können auch mittels RSS-Feed exportiert werden.
In der Dokumentation der Extension wird die Einrichtung eines RSS-Feeds unter “XML feeds from tt_news” beschrieben.
Das Ergebnis ist ein RSS 2.0 Feed, ohne Grafik und ohne Absätze. Dieser Artikel beschreibt, wie dies zugefügt werden können.
Der in der Dokumentation aufgelistete TypoScript Code dient als Basis für die weiteren Ausführungen:
Konstanten:
plugin.tt_news { displayXML { rss2_tmplFile = EXT:tt_news/res/rss_2.tmpl xmlFormat = rss2 xmlTitle = example.com: Latest News xmlLink = http://example.com/ xmlDesc = Latest News xmlLang = en xmlIcon = fileadmin/tt_news_article.gif title_stdWrap.htmlSpecialChars = 1 title_stdWrap.htmlSpecialChars.preserveEntities = 1 subheader_stdWrap.stripHtml = 1 subheader_stdWrap.htmlSpecialChars = 1 subheader_stdWrap.htmlSpecialChars.preserveEntities = 1 subheader_stdWrap.crop = 100 | ... | 1 subheader_stdWrap.ifEmpty.field = bodytext xmlLastBuildDate = 1 } } |
Darauf das die Werte für “xmlTitle”, “xmlLink” “xmlDesc”, “xmlLang” und “xmlIcon” den lokalen Gegebenheiten angepasst werden müssen, wird hier nicht weiter eingegangen. Die Einträge für “title_stdWrap” und “subheader_stdWrap” können auch, wenn dort nichts geändert werden soll, ganz gelöscht werden, da sie die Defaults der Extension darstellen.
Setup:
xmlnews = PAGE xmlnews { typeNum = 100 10 > 10 < plugin.tt_news 10.pid_list > 10.pid_list = {$plugin.tt_news.pid_list} 10.singlePid = {$plugin.tt_news.singlePid} 10.defaultCode = XML config { disableAllHeaderCode = 1 additionalHeaders = Content-type:text/xml no_cache = 1 xhtml_cleaning = 0 } } |
Wichtig ist, das die Konstanten “pid_list” und “singlePid” in TypoScript definiert werden.
Anpassung XML-Template
Damit das XML-Template nicht bei einem Upgrade der Extension überschrieben wird, wird es in einem ersten Schritt eine Kopie erstellt:
cp -a typo3conf/ext/tt_news/res/rss_2.tmpl fileadmin/tpl/ext/ttnews_rss_2.tmpl |
In das kopierte Template wird der Marker “###NEWS_IMAGE###” in den “content:encoded” Tag eingefügt, so dass dieser wie folgt aussieht:
<content:encoded><![CDATA[###NEWS_IMAGE### ###NEWS_CONTENT###]]></content:encoded>
Das komplette Template lässt sich hier herunterladen.
Eingebunden wird das kopierte HTML-Template mittels:
plugin.tt_news.displayXM.rss2_tmplFile = fileadmin/tpl/ext/ttnews_rss_2.tmpl |
Grafik anpassen
Anstelle des Marker wird im RSS-Feed nun die Grafik des jeweiligen News-Artikels ausgegeben, wobei die Grafik nicht in ihrer Größe angepasst wird. Dies muss nun in TypoScript erfolgen.
Hierfür wird im Setup bei “plugin.tt_news.displayXML.image” eine maximale Weite oder Höhe definiert:
plugin.tt_news.displayXML { image { file.maxW = 120 #file.maxH = 90 } xmlWebMaster = webmaster@example.com } |
Wichtig ist, dass entweder die maximale Weite oder die maximale Höhe angeben werden. Wenn beide Werte angegeben werden, werden die Grafiken fest auf diesen Wert skaliert. In den meisten Fällen ist sicherlich die maximale Weite angeben, wenn der RSS-Feed aber automatisch (z.B. mittels RSS.Graffiti) auf Facebook eingebunden werden soll, ist für maximale Höhe ein Wert von 80 oder mehr sinnvoll, da ansonsten die Grafiken von Facebook oft nicht eingebunden werden.
Die Angabe des Webmasters bei “xmlWebMaster” kann bei technischen Problemen für die Kontaktaufnahme sinnvoll sein.
Nun benötigen die Grafiken noch eine absolute URL. Hierfür wird im Setup den relativen Links ein Präfix geben:
xmlnews.config.absRefPrefix = http://example.com/ |
Absatz-Formatierung erhalten
Ohne weitere Bearbeitung würde der gesamte News-Text als Fließtext, ohne jegliche Absätze, in den RSS-Readern erscheinen. Gerade bei längeren Texten kann dies dazu führen, dass der Text nicht mehr lesbar ist.
Abhilfe schafft hier der folgende Eintrag:
plugin.tt_news.displayXML.content_stdWrap.parseFunc < tt_content.text.20.parseFunc |
Fertiges TypoScript
Somit ergibt sich folgende TypoScipt:
Konstanten:
plugin.tt_news { displayXML { pid_list = 47,11 # Wert den lokalen Gegebenheiten anpassen singlePid = 42 # Wert den lokalen Gegebenheiten anpassen rss2_tmplFile = fileadmin/tpl/ext/ttnews_rss_2.tmpl xmlFormat = rss2 xmlTitle = example.com: Latest News # Wert den lokalen Gegebenheiten anpassen xmlLink = http://example.com/ # Wert den lokalen Gegebenheiten anpassen xmlDesc = Latest News # Wert den lokalen Gegebenheiten anpassen xmlLang = de xmlIcon = fileadmin/tt_news_article.gif # Wert den lokalen Gegebenheiten anpassen xmlLastBuildDate = 1 } } |
Setup:
plugin.tt_news.displayXML { image { #file.maxW = 120 file.maxH = 90 } xmlWebMaster = webmaster@example.com # Wert den lokalen Gegebenheiten anpassen content_stdWrap.parseFunc < tt_content.text.20.parseFunc } xmlnews = PAGE xmlnews { typeNum = 100 10 > 10 < plugin.tt_news 10.pid_list > 10.pid_list = {$plugin.tt_news.pid_list} 10.singlePid = {$plugin.tt_news.singlePid} 10.defaultCode = XML config { disableAllHeaderCode = 1 additionalHeaders = Content-type:text/xml no_cache = 1 xhtml_cleaning = 0 } } page.headerData.500 = TEXT page.headerData.500.value = |
Original article: Typo3: Grafiken und Absätze im RSS-Feed von “tt_news” anzeigen
©2013 Dirks Blog. All Rights Reserved.