Blog
RSS Reloaded
Vor ein paar Tagen habe ich es bereits angesprochen, es gibt eine neue Möglichkeit den RSS-Feed zu managen. Mit dem Live-Test bin ich sehr zufrieden. Da ein Feed selbst bei einem kleinen Blog durchaus mehrere hundert mal pro Tag abgerufen wird, rentiert sich das schon. Doch nun eine kleine Hilfe zur Implementation.
Zunächst legt man eine Vorlage für Overview an. Diese nennt sich dann sinnvollerweise overview/rss.
Ein Beispiel:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0"> <channel> <title>Blog Titel</title> <link>http://www.wollen.de</link> <description>Hier steht die Beschreibung vom Blog</description> <language>de-de</language> <pubDate>\Mon, 31 Mar 2008 11:00:00 +0100</pubDate> <lastBuildDate>{rfcnow}</lastBuildDate> <docs>http://www.leben-ohne-diaet.de</docs> <generator>eforia RSS Generator</generator> <managingEditor>hk@tdb.de</managingEditor> <webMaster>hk@tdb.de</webMaster>
{block}<item> <title><![CDATA[{title}]]></title> <description><![CDATA[{main}]]></description> <link><![CDATA[{link="url:full;type:static;"}]]></link> <pubDate>{rfcdate}</pubDate> <guid isPermaLink="true">{link="url:full;type:static;"}</guid>
</item>{/block} </channel>
</rss>
Dann wird noch eine Seite im ewm angelegt mit dem Namen RSS-Feed. Ich habe es direkt unterhalb des Blogs als letzten Eintrag angelegt. Die Seite ist aktiv, aber nicht im Menü. Wobei auch dagegen nichts sprechen würde. Die Seite selbst muss auf "Ohne Vorlage" gesetzt werden und sollte statisch erzeugt werden. Das ist schließlich der Sinn des Ganzen. Als Name wählt man z.B. "/blog/rss.xml". Das XML als Endung ist wichtig. Theoretisch könnte der Name sonst beliebig sein, jedoch habe ich festgestellt, dass manche Feedreader Bilder nicht mehr korrekt aufrufen, wenn die Datei im Hauptverzeichnis liegt. Daher die Empfehlung die Datei in einem Unterverzeichnis anzulegen, aber auch nicht in einem Unter-Unter-Verzeichnis. Wie oft aufgefrischt wird, ist eigentlich egal. Ein Wert wie 14400, also alle 10 Tage reicht völlig.
Um das Auffrischen sollte sich nämlich Blog-Update kümmern. Entsprechend tragen wir in blog-update.ini die Seite mit ein:
[refresh]
ping=1
pos_1=/
pos_2=/Blog
pos_3=/Blog/RSS-Feed
pos_4=/Blog/*2
So, damit fehlt eigentlich nur noch der Inhalt der Seite selbst:
{execmacro="overview" param="name=rss;source=/Blog;step=10;"}
Das war's dann.
Achja, eforia.de benutzt noch das bisherige rss.prg. Das muss ich noch umstellen... 8-)
Dieser Artikel wurde veröffentlicht am 31.03.2008 um 11:00 Uhr.
Noch kein Kommentar.
Weg mit dem Feed
Natürlich soll der Feed nicht weg, aber rss.prg könnte es erwischen. Ich habe mir überlegt, ob ich nicht den Feed statisch anbieten sollte. Bei der Suche nach einer einfachen Lösung fiel mir auf, dass es eigentlich keine solche braucht. Alles Nötige ist längst in ewm vorhanden. Einfach eine Seite anlegen, dort direkt den XML-Code reinsetzen und mittels overview die letzten 10 Beiträge ausgeben.
Das funktioniert recht gut. Lediglich das Datumsformat im RFC-Stil hat gefehlt. Deswegen bringt das heutige Update die Tags {rfcdate} und {rfcnow} mit. Die Ausgabe sieht dann etwa so aus: Wed, 26 Mar 2008 17:48:00 +0100.
Overview kennt nun das zusätzliche Tag {newest_rfcdate}. Dort wird das Datum des neuesten von overview ausgegebenen Beitrags benutzt.
Tja, das reicht dann auch. Ich habe heute testweise in einem Blog den Feed auf diese Technik umgestellt. Nun warte ich mal ab, was so für Probleme auftreten. In Kürze kommt dann eine Anleitung zur benutzten Vorlage.
Der Vorteil ist natürlich die Erzeugung einer statischen XML-Datei. Diese kann dann vom Webserver richtig verwaltet werden. Also reine HEAD-Requests und Not-Modified-Antworten sparen schon Traffic und machen die Sache auch bei vielen Abonnenten sehr flott. Über das Modul Blog-Update wird die Feed-Datei dann auch immer richtig aufgefrischt so, dass ein manuelles Update eigentlich überhaupt nicht notwendig ist.
Mir gefällt die Lösung so gut, dass ich ernsthaft über den Wegfall des rss.prg nachdenke. Oder ist jemand anderer Meinung?
Dieser Artikel wurde veröffentlicht am 26.03.2008 um 17:48 Uhr.
Noch kein Kommentar.
Beta-Update: Neues Modul FeedPeek
Heute gab es wieder mal ein kleines Update für die ewm5-Beta. Der Viewer (o.prg) kann nun auch mit Angabe der Laufenden-Nummer der anzuzeigenden Seite aufgerufen werden. Also .../programm/o.prg?lfd=123.
Das ging zwar bisher auch im Format .../programm/o.prg?pos=lfd:123, aber der Doppelpunkt im Parameter ist eigentlich nicht ganz Standardgemäß.
Warum das Ganze?
Das Comment-Modul hat bisher per pos= verlinkt. Hat man aber einen neuen Blog-Beitrag eingefügt, änderte sich die Position der folgenden Einträge. Die statische Seite bekommt das nicht mit und das Formular läuft ins Leere. Genau das ist Cem Basman [Link entfernt, weil Linkziel leider nicht mehr verfügbar] passiert, der es freundlicherweise mir gemeldet hat.
FeedPeek
Die eigentliche Neuheit ist aber das kleine Modul feedpeek. Das zeigt Einträge aus dem RSSReader an. Damit kann man also beispielsweise Feeds von anderen Seiten abfragen und auf der Eigenen anzeigen. Ich mache das nun auf der Startseite von tdb.de. Wie das aussieht, kann man dem Screenshot (die Leiste die hier links kommt) entnehmen.
Um FeedPeek benutzen zu können, muss allerdings erstmal der RSS-Reader installiert werden. Dieser ist Teil von eforia-Base [Link entfernt, weil Linkziel leider nicht mehr verfügbar] und liegt dort im schedul-Verzeichnis. Er bringt die 2 Datenbanken rssf und rssfi mit und benötigt außerdem iconv im system-Verzeichnis.
Empfehlenswert sind 2 Einträge in schedul.ini, damit der RSSReader auch die Feeds aktuell hält aber nicht zu viele Einträge ansammelt. Das kann dann so aussehen:
program_7=rssreader.prg -refresh -doublecheck
dir_7=../schedul
next_start_7=08.08.2007 17:00
every_min_7=60
program_8=rssreader.prg -garbagecollection maxitem=20
dir_8=../schedul
next_start_8=09.08.2007 03:00
every_min_8=1440
Um neue Feeds aufzunehmen auf Kommandozeilenebene den Reader mit Option add starten. Beispiel:
../bin/tdbengine rssreader.prg -add http://www.eforia.de/custprg/rss.prg
So, damit sind die Feeds vorhanden, fehlt noch die Anzeige mit FeedPeek.
FeedPeek benötigt eine Vorlage. Wir nennen diese feedpeek/blog. Diese ist sehr simpel aufgebaut:
{block}
{date} {time} Uhr: <a href="{link}">{title}</a><br />
{/block}
Alles zwischen {block} und {/block} wird pro Eintrag ausgeführt. Die vier Platzhalter erklären sich von selbst.
Aufgerufen wird FeedPeek dann so:
{execmacro="feedpeek" param="template=blog;feed=http://www.eforia.de/custprg/rss.prg;count=3"} template= bestimmt die Vorlage feed= gibt den Feed an count= gibt die Anzahl auszugebender Datensätze an.
So, ich weis, das die Erklärung ein wenig knapp ist. Ich gehe mal einfach davon aus, dass jemand der FeedPeek nutzen möchte, bereits weis was ein Feed ist. Sonst käme man ja vermutlich erst gar nicht auf die Idee Feeds nutzen zu wollen. 8-)
Falls Fragen auftauchen, auch zum RSSReader, stehen die Kommentare offen.
Dieser Artikel wurde veröffentlicht am 08.08.2007 um 16:45 Uhr.
Noch kein Kommentar.
Zeige 1 - 3 von 3
|
|
Hier bloggt Horst Klier mit und über eforia web manager und was dazugehört (HTML, Javascript, Internet, Webdesign, Such- maschinenoptimierung, usw.).
Übersicht über alle Beiträge
|