Übersichtslisten per RSS-Strom ausliefern (Content-Syndication)Autor: Dr. Frank Hoffmann, 30.04.2003 Aus den ZMS-Objekten eines bestimmten Content-Knotens soll eine RSS-konforme XML-Datei erstellt werden. Dazu wird auf der Ebene der Darstellungstemplates eine neue DTML-Methode angelegt, die eine TOC-Liste generiert gemäss RSS-DTD (s. Links unten). Der Mechanismus wird anhand einer einfachen Grundstruktur gezeigt. Lösungsansatz: Die folgenden DTML-Methode erzeugt einen XML-Strom, der vom RSS-typischen channel-Element eingeleitet wird. Dann erfolgt die Defintion des Einstiegsknotens und eine iteratitive Listung mit der filteredChildNodes-Funktion. <dtml-call expr="RESPONSE.setHeader('content-type', 'text/xml')">
<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>medvalue.news</title>
<description>Aktuelle Themen aus dem medvalue-Netzwerk</description>
<language>de</language>
<link>http://medvalue.net</link>
<copyright>(c)2003 HOFFMANN+LIEBENBERG</copyright>
<!-- beispielhafter Einstiegsknopten content.e83 //-->
<dtml-with "content.e83">
<dtml-in "filteredChildNodes(REQUEST,PAGES,)">
<item>
<title><dtml-var "getTitle(REQUEST)"></title>
<description><dtml-var "getObjProperty('attr_dc_description',REQUEST)"></description>
<link><dtml-var "getHref2IndexHtml(REQUEST)"></link>
<dc:creator><dtml-var "getObjProperty('attr_dc_creator',REQUEST)"></dc:creator>
<dc:date><dtml-var "getLangFmtDate(getObjProperty('change_dt',REQUEST),
'eng','ISO-8601')"></dc:date>
</item>
</dtml-in>
</dtml-with>
</channel>
</rss>Kommentar: Der Einstiegsknoten wird hier explizit gewählt; eine attribut-bedingte Selektion ist ebenso möglich (s. dazu HowTo 'Knotenspez. TOC'). Es folgt eine beispielhafte Content-Integration eines auf obige Weise erzeugten RDF-Stroms von dem entfernten Rechner http://medvalue.net/newsfeed.xml; um lokal die RSS-Elemente verarbeiten zu können, kommt hier das Zope-Produkt 'RDFSummary' (Link s. unten) zum Einsatz: medvalue.news DTML-Code zur Darstellung mit RDFSummary (für das auf diesem Rechner eine Instanz 'rss_medvalue' angelegt wurde): <dtml-with rss_medvalue>Informationen über den direkten Einsatz von Dublin-Core-Elementnamen für die Deklaration von RSS-Strömen finden Sie weiter unten in der Linkliste. References:
|
Home |
Sitemap |
Druckversion |
Seitenanfang |
Impressum |
pressinfo
© 2001-2008 Hoffmann+Liebenberg GmbH, SNTL Publishing GmbH & Co KG
|
ZMS is a partner project of medvalue.net