21282 Posts in 5730 Topics by 2601 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 1602 Views |
-
External RSS

28 September 2009 at 1:29pm
Hi All,
Quick question, I want to add the most recent news story from a third party RSS feed to one of my templates. I am quite happpy to do this via SimpleXML, but I was wondering if SS has something builtin that might be more preferable to use?
Cheers,
Mo
-
Re: External RSS

28 September 2009 at 1:55pm
I just grabbed code from the Blog module (RSSWidget.php).
-
Re: External RSS

28 September 2009 at 6:30pm Last edited: 28 September 2009 6:31pm
Refactoring RSSWidget.php is probably a good solution. If you need more functionality, I'd probably use SimplePie (http://simplepie.org/) instead of parsing RAW XML using SimpleXML. It's a pretty neat php class for all your RSS/Atom Feed needs ;)
-
Re: External RSS

30 September 2009 at 10:27am
Quick question. Has anyone tried to pull in the Silverstripe blog (http://www.silverstripe.org/blog/rss/)?
I have tried several different methods, they all result in a file not found error, or something similar?
Anyone know why?
-
Re: External RSS

30 September 2009 at 3:38pm
How are you doing it?
We pull the ss.org blog feed fine from http://www.silverstripe.com/blog/.
-
Re: External RSS

1 October 2009 at 3:51am
I got it working now, using recycled code from the blog module, as mentioned above:
function LatestSSNews() {
$output = new DataObjectSet();
include_once(Director::getAbsFile(SAPPHIRE_DIR . '/thirdparty/simplepie/SimplePie.php'));
$t1 = microtime(true);
$feed = new SimplePie('http://www.silverstripe.org/blog/rss', TEMP_FOLDER);
$feed->init();
if($items = $feed->get_items(0, 2)) {
foreach($items as $item) {
// Cast the Date
$date = new Date('Date');
$date->setValue($item->get_date());// Cast the Title
$title = new Text('Title');
$title->setValue($item->get_title());
// Cast the description and strip
$desc = new Text('Description');
$desc->setValue(strip_tags($item->get_description()));$output->push(new ArrayData(array(
'Title' => $title,
'Date' => $date,
'Link' => $item->get_link(),
'Description' => $desc
)));
}
return $output;
}
}This works ok, I think the way I was trying to do it before was incorrect, I was trying to load it in using the RestfulService class, which didn't seem to work :s.
Mo
| 1602 Views | ||
|
Page:
1
|
Go to Top |




