Anschließend müssen die Feeds, die genutzt werden sollen geladen werden und notfalls etwas angepasst werden.
Oft besteht ja eine Internet Präsens aus mehreren Bereichen. EinfachenSeiten, Blog, Galerie usw. bilden die gesamte Seite. Meistens möchteman die verschiedenen Skripte miteinander verbinden, mindestens aber die Daten auf der Startseite zusammengefasst darstellen.
Für diesesTutorial gehen wir mal davon aus, wir haben
Alle Installationen sind erfolgt und laufen einwandfrei unter folgender Ordnerstruktur:
..
/blog/
/forum/
/gallery/
index.php
impressum.php
Auf der index.php (der Startseite beim Domainaufruf) sollen nun die dieneusten News aus den verschiedenen Bereichen erscheinen. Dazu könnteman nun eine Abfrage an die verschiedenen Datenbanken programmieren unddieses anzeigen. Dazu müsste man sich jedoch mit jeder der Datenbankenauseinander setzen, deren Strukturen total unterschiedlich sind. Undsollte ein Update des Skriptes veröffentlicht werden, geht nichts mehr,da die Datenbank umgestellt wurde. Der einfache Weg ist, auf eineSchnittstelle zurückzugreifen z.B. auf die Feeds der Skripte und nutztdiese für eine solche Aufgabe.
Der Vorteil liegt klar auf der Hand: Man braucht nur einmal etwaseinzusetzen und kann es dann für alle „internen” Feeds und auch externeFeeds* benutzen.
Wir verwenden nun für diese Aufgabe Magpie RSS - PHP RSS Parser.
Die hier herunter geladenen Daten werden dazu in den Unterordnermagpierss gespeichert, wodurch die neue Struktur wie folgt aussieht:
..
/blog/
/forum/
/gallery/
/magpierss/
index.php
impressum.php
Nun muss die index.php editiert werden, um das Skript einzubinden unddie Daten auszugeben. Als erstes muss magpierss aus dieser Seitegeladen werden. Dazu muss die Datei rss_fetch.inc geladen werden.
php
<?php require_once 'magpierss/rss_fetch.inc'; ?>
Anschließend müssen die Feeds, die genutzt werden sollen geladen werden und notfalls etwas angepasst werden.
php
<?php $rss_url = 'http://yourhp.de/blog/feed/'; $my_rss = fetch_rss($rss_url); ?>
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.
php
<dl> <?php foreach ($my_rss as $item) { $title = $item['title']; $url = $item['link']; $description = $item['description']; ?> <dd><?php print"$description"; ?></dd> <?php } ?> </dl>
Dafür werden für jeden Beitrag im Array der Titel, die Adresse undder Text genommen und als HTML ausgegeben. Der Titel dann als„Überschrift” mit Link gesetzt und anschließend die Beschreibungangezeigt.
Das Teilskript ab dem Einladen des Feeds bis zur Ausgabe kann nunbeliebig oft mit verschiedenen Feeds wiederholt werden. So kann hierz.B. der Feed der Galerie und des Forums zusätzlich genutzt werden oderdas ganze ein bisschen modifiziert werden:
php
<?php require_once 'magpierss/rss_fetch.inc'; $news_url = 'http://yourhp.de/blog/category/news/feed'; $news_rss = fetch_rss($news_url); $important_url = 'http://yourhp.de/blog/category/important/feed'; $important_rss = fetch_rss($important_url); ?> <dl> <?php foreach ($two_news as $item) { // zeige erste News $title = $item['title']; $url = $item['link']; $description = $item['description']; ?> <dd><?php print"$description"; ?></dd> <?php } ?> </dl> <hr size="1" noshade="noshade" /> <div style="float:left; position:relative; width:50%;"> <dl> <?php foreach ($rest_news as $item) { // Liste restliche News $title = $item['title']; $url = $item['link']; $description = $item['description']; ?> <?php } ?> </dl> </div> <div style="float:right; position:relative; width:50%;"> <dl> <?php foreach ($important_rss->items as $item) { // zeige wichtige Dinge $title = $item['title']; $url = $item['link']; $description = $item['description']; ?> <dd><?php print"$description"; ?></dd> <?php } ?> </dl> </div>
Viel Spass (the0bone)
Beispiele: bushidokarate.de
* Externe Feeds unterliegen meistens Urheberrechten. Bitte vor dem Einbinden von externen Feeds prüfen, ob dieses erlaubt ist.
Um zu kommentieren musst Du eingeloggt sein.