Oft besteht ja eine Internet Präsens aus mehreren Bereichen. Statischen Seiten, einem Blog, einer Galerie, einem Forum usw. Alles zusammen bildet die gesamte Seite. Meistens möchteman die verschiedenen Skripte miteinander verbinden, mindestens aber die Daten auf der Startseite zusammengefasst darstellen. Viele verschiedene Portalskripte bieten da ihre Funktion an, dabei ich das gar nicht so kompliziert.
Auf der index.php (der Startseite beim Domainaufruf) sollen nun die die neusten News aus den verschiedenen Bereichen erscheinen. Dazu könnte man nun eine Abfrage an die verschiedenen Datenbanken programmieren und dieses anzeigen. Dazu müsste man sich jedoch mit jeder der Datenbanken auseinander setzen, deren Strukturen total unterschiedlich sind. Und sollte ein Update des Skriptes veröffentlicht werden, geht nichts mehr, da die Datenbank umgestellt wurde. Der einfache Weg ist, auf eine Schnittstelle zurückzugreifen. Da bieten sich die Feeds der Skripte förmlich an.
Der Vorteil liegt klar auf der Hand: Man braucht nur einmal etwas einzusetzen und kann es dann für alle „internen” Feeds und auch externe Feeds benutzen.
Der Magpie RSS – PHP RSS Parser ist zwar schon etwas in die Jahre gekommen, erfüllt aber die Anforderungen vollkommen.
Die hier herunter geladenen Daten werden dazu in einem eigenen Unterordner “magpierss” gespeichert
Nun muss die index.php editiert werden, um das Skript einzubinden und die Daten auszugeben. Als erstes muss magpierss aus dieser Seitegeladen werden. Dazu muss die Datei rss_fetch.inc geladen werden. Dieses muss zwar vor dem anderen PHP Code passieren, aber nicht zwingend im Head Bereich der HTML Datei.
Anschließend müssen die Feeds, die genutzt werden sollen geladen werden und notfalls etwas angepasst werden.
In der ersten Zeile sollte die Adresse deines Feeds stehen. Hier sind z.B. aus WordPress raus auch Kategorie- Feeds möglich.
In der dritten Zeile wird der Feed passend zu unserer Darstellung gekürzt. Hier wird gestartet vor dem ersten Beitrag durch die 0 und inklusive des dritten durch die 3.
Nun liegen die Beiträge in dem Array $my_rss und müssen nur noch dargestellt werden. Dieses geschieht am besten mit einem Durchlauf durch das Array.
<dl> <dt><a href="<?php print($url); ?>"></a></dt> <dd></dd> </dl>
Dafür werden für jeden Beitrag im Array der Titel, die Adresse und der Text genommen und als HTML ausgegeben. Der Titel dann als „Überschrift” mit Link gesetzt und anschließend die Beschreibungangezeigt. Die entsprechende Definition (dt und dd) brauch ich an dieser Stelle nicht zu erklären.
Das Teilskript ab dem Einladen des Feeds bis zur Ausgabe kann nun beliebig oft mit verschiedenen Feeds wiederholt werden. So kann hier z.B. der Feed der Galerie und des Forums zusätzlich genutzt werden oderdas ganze ein bisschen modifiziert werden:
<dl> <dt><a href="<?php print($url); ?>"></a></dt> <dd></dd> </dl> <hr size="1" noshade="noshade" /> <div style="float: left; position: relative; width: 50%;"> <dl> <dt><a href="<?php print($url); ?>"></a></dt> </dl> </div> <div style="float: right; position: relative; width: 50%;"> <dl> <dt><a href="<?php print($url); ?>"></a></dt> <dd></dd> </dl> </div>
Einen Kommentar schreiben