syndicate or RSS feeds
15 posts by 6 authors in: Forums > CMS Builder
Last Post: June 10, 2010 (RSS)
By loccom - January 17, 2008
Is is possible to syndicate the info from a news page in CMSB like AM? or a RSS feed?
If it is possible would support be able to post instructions please?
thanks
Re: [steveo] syndicate or RSS feeds
By Dave - January 18, 2008
You sure can. Basically you create a regular "list viewer" and then use RSS tags instead of HTML tags. Here's an example I created for an article section I have (I called it articleRSS.php):
A few things to note:
- Put the first block of code at the top of the page so it loads first
- set the pageNum option to 1 so it always shows the first page of results
- set the perPage option to however many articles you want in your feed
- make sure the viewer url is starts with http://
Full details on the RSS spec and various fields and options can be found here: http://cyber.law.harvard.edu/rss/rss.html#ltguidgtSubelementOfLtitemgt
<?php // Load record list
require_once "C:/www/sb/core2/admin/lib/viewer_functions.php";
$options = array();
$options['tableName'] = 'article';
$options['titleField'] = 'title';
$options['viewerUrl'] = 'http://www.example.com/articlePage.php';
$options['perPage'] = '10';
$options['orderBy'] = 'date DESC, title';
$options['pageNum'] = '1';
list($listRows, $listDetails) = getListRows($options);
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<rss version="2.0">
<channel>
<title>PUT YOUR SITE NAME HERE</title>
<link>http://EXAMPLE.COM/YOUR/URL/HERE/</link>
<description>YOUR SITE DESCRIPTION GOES HERE</description>
<pubDate><?php echo date('r'); ?></pubDate>
<language>en-us</language>
<?php foreach ($listRows as $record): ?>
<item>
<title><?php echo htmlspecialchars($record['title']) ?></title>
<link><?php echo $record['_link'] ?></link>
<description><?php echo htmlspecialchars($record['summary']); ?></description>
<pubDate><?php echo date("r", strtotime($record['date'])) ?></pubDate>
<guid isPermaLink="true"><?php echo $record['_link'] ?></guid>
</item>
<?php endforeach ?>
</channel>
</rss>
Give it a try and let me know how it goes. Let me know if you need more details about anything or if I can be more clear.
interactivetools.com
Re: [Dave] syndicate or RSS feeds
By loccom - January 18, 2008
Re: [Berkowitz] syndicate or RSS feeds
By Dave - February 27, 2008
Can you "view source" on the RSS in your browser and post that? It's often easier to work backwards from the output to figure out what's not working.
interactivetools.com
Re: [Berkowitz] syndicate or RSS feeds
By Dave - February 27, 2008
I also tried this W3C Validator here and pasted in the code:
http://validator.w3.org/feed/#validate_by_input
It said it was valid (but recommended adding a tag for atom:link feeds or something like that).
interactivetools.com
Re: [Berkowitz] syndicate or RSS feeds
By Dave - February 27, 2008
http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fwww.1id.be%2Fnewsrss.php
Try adding this to the top after the <?php to set that charset and content type:
<?php
header('Content-type: application/xml; charset=utf-8');
Then try the link in the feed validator and browser again and see what error or problems remain (hopefully none).
interactivetools.com
Re: [Berkowitz] syndicate or RSS feeds
By Dave - February 28, 2008
interactivetools.com
Re: [Dave] syndicate or RSS feeds
By nikkijones - March 13, 2008 - edited: March 13, 2008
I;m also having a problem settting this up. Maybe i'm just tired and missing something really simple, i dunno. My page is called articlerss.php. I;m trying to get the news articles that are posted.
Here is my code:
<?php
header('Content-type: application/xml; charset=utf-8');
require_once "/home/fhlinux152/a/allianceinpartnership.co.uk/user/htdocs/cmsAdmin/lib/viewer_functions.php";
$options = array(); // NOTE: see online documentation for more details on these options
$options['tableName'] = 'news'; // (REQUIRED) MySQL tablename to list record from. Example: 'article';
$options['titleField'] = 'title'; // (optional) MySQL fieldname used in viewer url for search engines. Example: 'title' would display: viewer.php/article_title_here-123
$options['viewerUrl'] = 'http://www.allianceinpartnership.co.uk/newsPage.php'; // (optional) URL of viewer page. Example: '/articles/view.php';
$options['perPage'] = '10'; // (optional) The number of records to display per page. Example: '5'; Defaults to 10.
$options['orderBy'] = 'title'; // (optional) Fieldnames to sort by. Example: 'field1, field2 DESC, field3';
$options['pageNum'] = '1'; // (optional) Page number of results to display. Example: '1'; Defaults to ?page=# value, or 1 if undefined
list($listRows, $listDetails) = getListRows($options);
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<rss version="2.0">
<channel>
<title>PUT YOUR SITE NAME HERE</title>
<link>http://EXAMPLE.COM/YOUR/URL/HERE/</link>
<description>YOUR SITE DESCRIPTION GOES HERE</description>
<pubDate><?php echo date('r'); ?></pubDate>
<language>en-us</language>
<?php foreach ($listRows as $record): ?>
<item>
<title><?php echo htmlspecialchars($record['title']) ?></title>
<link><?php echo $record['_link'] ?></link>
<description><?php echo htmlspecialchars($record['summary']); ?></description>
<pubDate><?php echo date("r", strtotime($record['date'])) ?></pubDate>
<guid isPermaLink="true"><?php echo $record['_link'] ?></guid>
</item>
<?php endforeach ?>
</channel>
</rss>
...all i get is feed code error [:(]
Cheers,
nikki.
Re: [nikkijones] syndicate or RSS feeds
By Dave - March 13, 2008
interactivetools.com