I’ve spent the last several days fiddling around with Magpie RSS, attempting to feed Blog updates onto my home page via RSS.
Well, you’d think it should be easy, as I found no fewer than a dozen “simple” tutorials on parsing the output via PHP and customizing the feeds. But of the 5 or 6 different scripts that were freely available, only the last one I found actually worked.
The funny thing is, as I brushed up on my PHP, I realized that the issues were mostly very simple ones – syntax, mostly, and bad programming. You’d think people who write Magpie / PHP walkthrough’s would test their code…
Anyway, it’s up and running, and it’s working great – you can now view summaries of the latest Blog posts directly at www.eberlysystems.com – our Home page, plus breaking news as it becomes available.
For anyone who is interested in what I came up with, here’s the basics…
- Download MagpieRSS from http://magpierss.sourceforge.net/
- Install per the included “Install” file (open via your web browser – it’s in HTML format)
- Insert this PHP script into your page and customize the lines in bold
- Enjoy!
Script:
<?php
require_once(‘magpierss/rss_fetch.inc’);
$rss = fetch_rss(‘http://www.eberlysystems.com/blog/wp-rss.php‘);
if ( $rss) {
#in this case, we only want to display the first four news feeds:
$short_items = array_slice($rss->items,0,3);
#to be polite, set magpie to only refresh a feed once every half-hour:
define(‘magpie_cache_age’, 900); # 30 x 60 = 1800 seconds
#tell magpie to use utf-8 encoding
define(‘magpie_output_encoding’, ‘utf-8′);
define(‘magpie_input_encoding’, ‘utf-8′);
define(‘magpie_detect_encoding’, ‘false’);
#now we tell magpie how to format our output
foreach ($short_items as $item) {
#define the link to the story as $href
$href = $item['link'];
#set the item title as $title
$title = $item['title'];
#set the item content as $longdesc
$longdesc = $item['description'];
#to only display the first 60 characters of the title and
#the first 100 characters of the content:
$desc = trim(strip_tags($longdesc));
if (strlen($desc) >= 175)
{
$desc = substr($desc,0,174).”…”;
}
if (strlen($title) >= 25)
{
$title = substr($title,0,24).”…”;
}
#and now we want to put it all together to show the image icon,
#followed by the item title, followed by the content on a new
#line in a smaller font.
echo “<h2 align=center><a href=\”$href\”>$title</a><br /><span>$desc</span></h2>“;
}
}
?>
Happy New Year to everyone in case I don’t get to update again before 2010!
