Gerade standen wir vor dem Problem in einer hard-gecodeten HTML-Seite einen RSS Feed aus einem WordPress-Blog im Verzeichnispfad /blog/ der Root-Domain einbinden zu wollen. Das hat so einfach leider nicht geklappt. Die Lösung hilft hoffentlich auch anderen, die eventuell vor der gleichen Herausforderung stehen. Dieser Ansatz kann in jedes bestehende CMS oder Shopsystem übernommen werden (Beispiele mit denen wir das getesten haben: XT-Commerce 3 & 4, Magento, Joomla, WordPress, Contao, Drupal und sogar SugarCRM).
Unsere lieben Coder / Entwickler (Redaktionsmitglieder Marco & Benni) haben hier ein eigenes Script geschrieben, welches dafür verwendet werden kann.
Überblick für die Integration:
- Verzeichnis anlegen: /parserss/
- Das Script rss.inc.php herunterladen und in den angelegten Ordner hineinkopieren
- Die index.html in index.php umbenennen
- Den Scriptaufruf integrieren
- In die .htaccess einen Rewrite schrieben, um die index.html wieder nutzen zu können
- CSS Anpassungen (Darstellung der Ausgabe)
- Download
Im Grunde ist das Ganze auch für ungeübte User recht leicht umzusetzen. In den folgenden Schritten wird genau erklärt, wie das Ergebnis zu erreichen ist.
1. Verzeichnis anlegen
Einfach per FTP auf dem Server im Rootverzeichnis der Website einen Ordner namens /parsrss/ anlegen.
2. Script herunterladen und auf eigenen Server hochladen
Hier kann das Parser-Script heruntergeladen werden. Das Script kann via FTP (z.B. mittels Filezilla) auf den Webserver in das erstellte Verzeichnis hochgeladen werden. Im Script ist bisher angegeben, dass die URL [link] des Beitrages aus dem RSS Feed und die Beschreibung [description] angezeigt werden sollen. Wir haben eine kleine Funktion in das Script integriert, anhand derer man sich die Variablen, die zur Verfügung stehen, ausgeben lassen kann. Dafür bitte einfach die beiden Kommentierungszeichen “//” vor “print_r($channel);” entfernen. Danach die Seite im Browser einmal aktualisieren. Nun erscheinen die möglichen Variablen, aber in einer unsortierten Darstellung. Für den besseren Überblick einmal den Quelltext der Seite über den Browser öffnen und dann zu der Stelle navigieren, an der die Integration stattfindet. Dort stehen nun als Liste alle Variablen. Die möglichen Variablen des gewählten RSS Feeds können nun in das Script aufgenommen werden, um aus Ihnen eine Ausgabe zu erzeugen.
Beispiel:
Man möchte, dass die Beschreibung, also die Description, auftauch…
echo ‘<div><a href=”‘.utf8_decode($item['link']).’”>’.utf8_decode($item['title']).’</a><br/>’.
‘<div>’.utf8_decode($item['description']).’</div></div>’;
Die Ausgabe kann also um alle Variablen erweitert werden, die einem in der Quelltextansicht angezeigt werden.
3. Umbenennen der index.html
Mit Hilfe eines Code-Editors soll nun die index.html in index.php umbenannt werden. Falls die Index-Datei bereits index.php heißt entfällt dieser Schritt.
4. Den Scriptaufruf integrieren
In die nun umbenannte index.php muss die Ausgabe des rss.inc.php Script integriert werden. Hier eine beispielhafte Integration (für dieses Script nutzen):
<?php include dirname(__FILE__).’/parserss/rss.inc.php’; ?>
Diesen Aufruf kann man nun noch von einem DIV-Container umschließen, so dass man das auch nachher komplett über CSS verschieben kann. Das könnte dann so aussehen:
<div class=”klasse-vergeben”>
<?php include dirname(__FILE__).’/parserss/rss.inc.php’; ?>
</div>
5. Rewrite Rule in die .htaccess schreiben (nur wenn die index.html in index.php umbenannt wurde)
Folgende Anpassung muss nun in die .htaccess Datei (liegt in der Regel im Rootverzeichnis der Website) geschrieben werden:
RewriteEngine on
RewriteRule ^index\.html /index\.php
Dadurch wird nun die index.php vom Browser wie eine index.html behandelt, so dass man nicht mehr alle Links in der Seite, die man ja eventuell im Menü oder an anderen Stellen gesetzt hat, ändern muss. Wie gesagt, sind diese Anpassungen auch eher für Seiten gedacht, die hard-gecodet als HTML Dokumente auf einem Server liegen. Trotzdem lässt sich das Script natürlich auch in jedes CMS übertragen und dort mit den gleichen Aufrufen und Integrationen nutzen.
6. CSS Anpassungen
Da man nun eine bestimmte Ausgabe in der index.php erzeugt hat und diese bisher nicht schön aussieht, kann man nun in die CSS Datei der Seite einige Befehle aufnehmen, um die Positionierung und das Aussehen zu beeinflussen. Diese Zeilen sind ein minimales Beispiel und können mit anderen CSS Regeln erweitert bzw. ersetzt werden:
.klassen-name1 {margin: 15px 0 15px 0;}
.klassen-name2 {margin: 0 0 15px 0;}
Nun sollte alles geklappt haben und auf der ehemaligen index.html (jetzt index.php – jedoch im Browser immer noch index.html genannt) erscheint die Ausgabe des RSS Feeds.
7. Downloads:
RSS Parser herunterladen (inkl. Anleitung und Beispiel-Dateien)
Danke für das Script, funktioniert soweit ganz gut, jetzt muss ich es nur noch mit mehreren Feeds hinbekommen.
Gruß Guenny
Immer gern. Um mehrere Feeds zu integrieren wird Marco in den kommenden Tagen eine weitere Version veröffentlichen.
Vielen Dank für das Feedback.