Tutorial - RSS-Feeds

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche

Einleitung

Ein RSS-Feed ist, ähnlich wie ein Nachrichten-Ticker, ein Kanal auf dem üblicherweise die neuesten Nachrichten einer Webseite oder z.B. auch neue Blog-Einträge sofort nach der Veröffentlichung erscheinen. RSS-Feeds können an vielen Orten eingebunden und von anderen Leuten abonniert werden und sind daher ideal geeignet um Neuigkeiten schnell und einfach zu verbreiten. Mit DynPG können Sie einen RSS-Feed im Handumdrehen erstellen, denn alles was Sie hierfür benötigen ist ein einziges weiteres Snippet.

Erstellen des RSS-Feeds

Für die Erstellung eines RSS-Feeds nutzen wir ein weiteres mal die Template-Engine von DynPG. Mit dem speziellen Template rss erzeugen wir den Nachrichtenkanal und überlassen DynPG dann das Einfügen aller Nachrichten-Artikel. Dazu erzeugen wir eine neue Datei, welche nur das Snippet für den RSS-Feed enthält. Auf diesen Feed verweisen wir dann später mit einem Link, den wir auf der eigentlichen Webseite platzieren. Das Snippet sieht erst einmal aus wie folgt:

Note.png Bemerkung: Bitte beachten Sie, dass der RSS-Feed eine eigenständige Webseite ist, d.h. dieses Snippet nicht in eine andere Webseite eingebunden werden sollte. Stattdessen sollte die Seite rss_feed.php direkt aufgerufen werden, was wir im nächsten Abschnitt durch einen Link realisieren.

rss_feed.php

<?php
    require('../dynpg/getcontent.php');
    $DynPG->SetParam_PathToRoot('../dynpg/');
 
    $DynPG->sendHTTPHeader('iso-8859-1', 'text/xml');
 
    $DynPG->setupTemplate('rss');
    $DynPG->SetParam_AA_Order( Array( 'DATE_FROM' , 'TIME_FROM' , 'DATE_TO' , 'TIME_TO' , 'CREATEDATE' ) );
    $DynPG->SetParam_AA_Sort( Array( 'DESC', 'DESC', 'DESC', 'DESC' , 'DESC' ) );
    $DynPG->SetParam_AA_Anytime(true, true);
    $DynPG->SetParam_AA_Groups( Array($newsGroupID) );
    $DynPG->SetParam_AA_ForceNav(false);
    $DynPG->SetParam_AA_fullLoadText(true);
    $DynPG->SetParam_AA_CategoryNavigation(false);
    $DynPG->SetParam_AA_Maxview(999);
    $DynPG->Write_AllArticles();
 
    $DynPG->SetupTemplate('default');
?>
Note.png Bemerkung: $newsGroupID muss hier durch die ID der Gruppe ersetzt werden, welche die anzuzeigenden Artikel enthält, also z.B. eine Gruppe News mit den neuesten Nachrichten.

Mit dem verwendeten Template rss weisen wir DynPG an, die Artikel in der entsprechenden Formatierung auszugeben, damit sie später durch einen RSS-Reader gelesen werden können. Im Anschluss wird die Sortierung der Artikel festgelegt (hier absteigend nach dem Datum der ersten Veröffentlichung). Danach legen wir die Gruppe fest, die im Feed ausgegeben werden soll.

Anpassen des RSS-Feed Templates

Das verwendete Template rss finden Sie im DynPG Hauptverzeichnis unter tpl/MyCMS/rss/articles.tpl. Hier müssen wir noch einige Anpassungen vornehmen, damit die Links im RSS-Feed richtig gesetzt werden.


Ändern Sie in dieser Template-Datei die folgenden Zeilen ab:

Zeile 5: Link zum RSS-Feed

<link><![CDATA[http://www.domain.com{$Main->Self}]]></link>

Zeile 20: Link zur Artikel-Detailansicht

<link><![CDATA[http://www.domain.com/myarticles.php?read_article={$id}]]></link>


Hier müssen Sie www.domain.com durch die Webadresse Ihrer Webseite ersetzen. In Zeile 5 können Sie den Link zum RSS-Feed bestimmen und in Zeile 20 einen Link zur Artikel-Detailansicht Ihrer Webseite angeben.

Beispiel

Ihre Webseite heißt www.muster.de und Artikel werden in der Datei index.php angezeigt, d.h. dort befindet sich die Artikel-Detailansicht.


Anpassung Zeile 5: Link zum RSS-Feed

<link><![CDATA[http://www.muster.de{$Main->Self}]]></link>

Anpassung Zeile 20: Link zur Artikel-Detailansicht

<link><![CDATA[http://www.muster.de/index.php?read_article={$id}]]></link>

Einbindung in die Webseite

Da der RSS-Feed immer eine eigenständige Seite sein sollte, müssen wir das Snippet nicht großartig in die bereits bestehende Webseite einbinden. Wir brauchen dort lediglich einen Link auf den Feed zu platzieren. Nach einem Klick auf diesen Link wird der Besucher dann auf die Seite des Feeds weitergeleitet und kann ihn dann dort abonnieren, sofern er das möchte. Der folgende HTML-Code für den Link genügt also bereits für die Einbindung:

Link zum RSS-Feed:

<a href="rss_feed.php">
    <img src="img/rss_logo.gif" alt="RSS-Feed" border="0">
</a>


Bei einem Klick auf den Link wird dann abhängig vom Browser eine vollständige Version des Feeds angezeigt. Andere Feed-Reader können diesen dann auslesen und entsprechend formatiert ausgeben, wobei dann üblicherweise nur der Titel und Lead-Text angezeigt wird. Beispielhaft könnte eine vollständige Ausgabe wie folgt aussehen:


RSS Feed.png