Für diesesTutorial gehen wir mal davon aus, wir haben
- einen statischen Bereich, mit festen Seiteninhalten
- einer Blog Installation
- einer Galerie
- und einem Forum
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.
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.
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
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);
$important_rss->
items =
array_slice($important_rss->
items,
0,
3);
?>
<dl>
<?php
foreach ($two_news as $item) { // zeige erste News
$title = $item['title'];
$url = $item['link'];
$description = $item['description'];
?>
<dt><a href=
"<?php print"$url"; ?>"><?php
print"$title"; ?></a></dt>
<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'];
?>
<dt><a href=
"<?php print"$url"; ?>"><?php
print"$title"; ?></a></dt>
<?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'];
?>
<dt><a href=
"<?php print"$url"; ?>"><?php
print"$title"; ?></a></dt>
<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.