MagpieRSS unterliegt als Open-Source der GPL-Lizenz und kann hier runtergeladen werden. Die Installation gestaltet sich nach dem Entpacken relativ einfach. Es ist lediglich der entpackte Ordner [ magpierss-0.72 ] mit den Dateiein rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc sowie Unterordnern in das Hauptverzeichnis des Webservers zu laden.
Einbinden von MagpieRSS
ist ebenfalls kein Hexenwerk. Mit dem in der Doku angebotenem Snippet :
// MagpieRSS Start -------------------------------------------------------
<?php
require_once 'rss_fetch.inc';
$url = 'http://www.bst-systemtechnik.de/index.php/blog?format=feed'; // URL gegen ihren Stream tauschen
$rss = fetch_rss($url);
echo "Site: ", $rss->channel['title'], "<br>";
foreach ($rss->items as $item ) {
$title = $item[title];
$url = $item[link];
echo "<a href=$url>$title</a></li><br>";}?>
// MagpieRSS Ende -----------------------------------------
welches einfach in der PHP-Seite, an geeigneter Stellen eingebunden wird, kann der Feed sofort dargestellt werden.
Wichtig sind die ansprechbaren Objekte :
- channel
- item
- image
- textinput
Die wiederum in eigenen Arrays die Informationen bereitstellen.
Diese können bequem in Variablen eingelesen werden.
Beispielhaft und selbsterklärend hier das das Auslesen des Item-Objekts:
- $title = $item['title'];
- $url = $item['link'];
- $author = $item['author'];
- $description = $item['description'];
- $image = $item['url'];
- $pubdate = $item['pubdate'];
Ein kleines Problem macht das $item['pubdate'];, es liefert hartnäckig, aber eigentlich erwartet ein falsches String-Datumsformat ( US ).
Also einfach umwandeln mit :
$item['pubdate'] = date('d.m.YY', strtotime($item['pubdate']));
Genauso einfach hatte ich das Image-Objekt erwartet. Dem war aber nicht so. Das MagpieRRS Image-Objekt war leer ! Scheinbar landet das K2-Blog Bild bzw. Thumbnail nicht im Objekt der Begierde. Da nach ausgiebiger Google Rechere auch andere nach einer Lösung suchten, gehe ich mal davon aus das es nicht am Blog-System liegt. Ich habe mir dann das Item-Objekt mal genauer angeschaut und siehe da, das Artikelbild war im $item['description'] ziemlich am Anfang in einem src-Tag versteckt. Es galt also eine Lösug zu finden das Bild rauszulösen.
Und hierfür eignen sich die PHP Funktionen strpos bzw. substr.
MagpieRSS mit Bild- bzw. Image-Hack
// MagpieRSS Image-Hack Start --------------------------------------------------------
<div>
<ul>
<?php
require_once 'magpierss/rss_fetch.inc';
$url = 'http://www.bst-systemtechnik.de/index.php/blog?format=feed'; // URL austauschen
$num_items = 10; // stellt die neuesten 10 Arikel dar
$rss = fetch_rss( $url );
$items = array_slice($rss->items, 0, $num_items);
$ctitel = $rss->channel['title'];
$cdesc = $rss->channel['description'];
foreach ($rss->items as $item )
{
$title = $item['title'];
$url = $item['link'];
$author = $item['author'];
$description = $item['description'];
$datum = $item[dc][date];
date('d.m.Y', strtotime($item['pubdate']));
$pubdate= date('d.m.Y', strtotime($item['pubdate']));
// ---> Image Hack Start < --------------------------------
$start_image=strpos($description,"<i");
$end_image=strpos($description,".jpg") - $start_image + 5;
$start_short_text=strpos($description,"<p>") + 3;
$image=substr($description,$start_image,$end_image)." alt='blog-pic' height='45' width='100' />";
// ---> Image Hack Ende < --------------------------------
$short_text=substr($description,$start_short_text,160);
$cleanString = strip_tags($short_text)." ..."; // entfernen eventueller HTML-Tags
$post="postet : " . $pubdate . " von " . $author;
echo "
<li>
</p><a href=\" ${url}\"target='_blank'></p>
<p>$image</p>
<p>${title}</p>
<p>${cleanString}</p>
<p>$post</p>
</a>
</li>
";
}
?>
</ul>
<div>
// MagpieRSS Image-Hack Ende -----------------------------------------
Nun einfach den MagpieRSS Image-Hack an die geeignete Stelle in die PHP Datei kopieren und mit CSS formatieren ...
Have Fun





