Zope Hosting
 

Eigenen Newsfeed aus ZMS-Seiten erzeugen und anbieten



Bookmark zu ZMS-Zope bei del.icio.us setzen  Bookmark zu ZMS-Zope bei Mister Wong setzen Bookmark zu ZMS-Zope bei Google setzen  Bookmark zu ZMS-Zope bei Digg setzen  Set Newsvine setzen  Bookmark zu ZMS-Zope bei Reddit setzen 

»In diesem Dokument wird beschrieben, wie Sie eigenen Newsfeed anbieten, und zwar durch automatische Konvertierung bereits vorhandener (ZMS-)Seiten in das Newsfeedformat. Die Vorgehensweise besteht aus zwei Schritten: 1. Erstellung eines ZMS-Templates, welches Newsfeed-Inhalte aus Ihrer Website extrahiert und in Form eines XML-Datenstroms bereitstellt. 2. Hinzufügung eines META-Tags in Ihre Webseiten, damit Newsfeed-kompatible Browser den Newsfeed auf Ihrer Website identifizieren.«

ZMS-Template (newsfeed.xml) erstellen

Der nachfolgende Code ist als "DTML-Methode" mit der ID newsfeed.xml im ZMS-Mandantenordner abzulegen. DTML ist die Template-Programmiersprache von ZMS und Zope, der ZMS-Mandantenordner ist der Ort, an dem alle Layoutdefinitionen einer ZMS-Website abgelegt sind.

<dtml-call expr="RESPONSE.setHeader('content-type', 'text/xml')">
<?xml version="1.0" encoding="utf-8" ?> 
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>zms-zope.news</title>
<description>ZMS-Ressourcen. Aktuelle Tipps rund um Zope und ZMS</description>
<language>de</language>
<link>http://www.zms-zope.de</link>
<copyright>(c)2008 Hermann Husen</copyright>

<dtml-with "content.e864">
<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>

Hinweise:

Der Knoten "content.e864" ist auf dieser Site die Rubrik "ZMS-Ressourcen". In der Schleife <dtml-in>...</dtml-in> wird über die Inhaltsobjekte vom Typ Seite ("PAGE") des Knotens iteriert. Die Funktion filteredChildNodes liefert die Element des betreffenden Knotens. Falls Sie alle Objekte der Subhierarchie ausliefern möchten, verwenden Sie filteredTreeNodes.

HTML-Meta-Tag (<link type="application/rss+xml">) einfügen

Das obige Template liefert die Grundfunktion: Generierung eines XML-Datenstroms im Newsfeedformat. Der Newsfeed selbst ist in diesem Beispiel unter der URL http://www.zms-zope.de/newsfeed.xml erreichbar. Wenn Sie nun folgendes META-Tag in die HTML-Seiten einfügen, können newsfeedkompatible Browser die Position des Feeds erkennen:

<link rel="alternate" type="application/rss+xml"
title="NEWS von www.xml-zope.de" href="/newsfeed.xml" />

Der geeignete Ort zum einfügten des LINK-Tags ist in ZMS in der Regel das Objekt standard_html_header, und zwar im Bereich zwischen <head> und </head>.

Link zur ZMS-Website
Die hier dargestellten Informationen wurden der ZMS-Website entnommen und auf die Gegebenzeiten von zms-zope angepasst.