MagpieRSS & Website Updates
Kordel
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(‘ https://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!
