Sie sind hier:   » ZMS home » Dokumentation » Details » How-To » TOC-Listen » RSS

Ü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

  1. Vorträge und Vorlesungen online publizieren
    [2003-08-29T18:36:01-01:00] Vorträge sind attraktive Inhalte: vorgefertigt, erprobt, didaktisch aufbereitet, vom Experten. Die Übertragung in elektronische Medien ist vielfach wünschenswert. Dabei soll der Aufwand minimiert und die Verwertbarkeit maximiert werden.
  2. Empfehlungen zur redaktionssystem-basierten Erstellung medizinischer Internet-Inhalte
    [2003-08-29T12:34:48-01:00] Die firmeninterne Betreuung von marketing-relevanten medizinischen Internet-Inhalten erfordert die Berücksichtigung einiger juristischer Grundlagen sowie einen möglichst einfachen, homogenen Erstellungprozess.
  3. Warum steckt die zertifizierte Online-Fortbildung noch in den Kinderschuhen?
    [2003-07-15T14:40:15-01:00] Immerhin 64% der deutschen Ärzte nutzen regelmässig das Internet und der überwiegende Teil sucht nach Fortbildungs-Inhalten; fündig werden allerdings allenfalls ein Fünftel dieser Kollegen [Krüger-Brand 2003].


DTML-Code zur Darstellung mit RDFSummary (für das auf diesem Rechner eine Instanz 'rss_medvalue' angelegt wurde):

<dtml-with rss_medvalue>
<p><dtml-var "channel()['title']"></p>
<ol><dtml-in items mapping end="3">
<li><a href="<dtml-var link>"><b><dtml-var title></b></a><br>
<dtml-if "_.has_key('date')">[<i><dtml-var date></i>]
<dtml-if "_.has_key('description')"><dtml-var description></dtml-if>
</li>
</dtml-in>
</ol>
</dtml-with>



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:
Making An RSS Feed
How does RSS syndication work? Say you publish a new web page about a particular topic. You want others interested in that topic to know about it. By listing the page as an "item" in your RSS file, you can have the page appear in front of those who read information using RSS readers or "news aggregators"
Nichthierarchische Inhaltsübersicht über einen entfernten Knoten
Wird das Meta-Attribut DC.Identifier.DOI verwendet, so kann das Objekt auch über findFilteredTreeNodes(REQUEST=REQUEST,meta_types=PAGES,values=['getDoiPath','DOI']) lokalisiert werden.
RSS 2.0-Specification, Userland
Übersicht sämtlicher RSS-Elemente für das "Really Simple Syndication".
RDFSummary - display RSS files
Download Zope-Produkt RDFSummary
RDF Site Summary 1.0 Modules: Dublin Core
Status: Release. The Dublin Core Metadata Element Set provides some standard metadata elements. These are listed below for your quick reference; be sure to visit the Dublin Core site for more specifics.
RDF Site Summary 1.0 Modules: Qualified Dublin Core
Status: Draft. This module is designed to allow Qualified Dublin Core metadata to be used in addition to the Dublin Core metadata that the RSS 1.0 Dublin Core module permits.