Powerful PHP class for RSS 2.0 feed generation.
By : mgalesic
Simple example:
<?php
include('class.rss.php');
$rss = new rss('utf-8');
$rss->channel('RSStitle', 'http://www.yoursite.com', 'Description of RSS channel');
$rss->language('en-us');
$rss->copyright('Copyright by yourSiteName 2006');
$rss->managingEditor('email@yoursite.com');
$rss->category('CategoryName');
$rss->startRSS();
for($i = 1; $i < 10; $i++){
$rss->itemTitle('News ' . $i);
$rss->itemLink('http://www.yoursite.com/news.php?id=' . $i);
$rss->itemDescription('This is short news description number ' . $i);
$rss->itemAuthor('email@yoursite.com');
$rss->itemGuid('http://www.yoursite.com/news.php?id=' . $i);
$rss->itemSource('YourSiteName', 'http://www.yoursite.com/rss/rss.xml');
$rss->addItem();
}
echo $rss->RSSdone();
?>
Prototypes and description:
---------------------------
Full documentation of RSS 2.0 standard you can find at http://blogs.law.harvard.edu/tech/rss
Legends:
--------
*R - required function
*O - optional function
= '' - optional parameter inside the function
- $rss = new rss($encoding = '');
- function channel($title, $link, $description);
*R
- function language($language);
*O
- function copyright($copyright);
*O
Copyright notice for content in the channel
- function managingEditor($managingEditor);
*O
Email address for person responsible for editorial content
- function webMaster($webMaster);
*O
Email address for person responsible for technical issues relating to channel
- function pubDate($pubDate);
*O
The publication date for the content in the channel
All date-times in RSS conform to the Date and Time Specification of RFC 822
- function lastBuildDate($lastBuildDate);
*O
The last time the content of the channel changed
- function category($category, $domain = '');
*O
Specify one or more categories that the channel belongs to
Follows the same rules as the function itemCategory();
- function cloud($domain, $port, $path, $registerProcedure, $protocol);
*O
Allows processes to register with a cloud to be notified of updates to the channel,
implementing a lightweight publish-subscribe protocol for RSS feeds
- function ttl($ttl);
*O
ttl stands for time to live
It's a number of minutes that indicates how long a channel can be cached before refreshing from the source
- function image($url, $title, $link, $width = '', $height = '', $description = '');
*O
Specifies a GIF, JPEG or PNG image that can be displayed with the channel
- function textInput($title, $description, $name, $link);
*O
Specifies a text input box that can be displayed with the channel
- function skipHours();
*O
function can take any numner of parameters
See the specification for skipHours tag
- function skipDays();
*O
function can take any numner of parameters
See the specification for skipDays tag
- function startRSS($path = '.', $filename = 'rss');
*O
function take path and filename for creating an XML file
It has to be called after all aabove function but before any item function
In default it will create rss.xml file in current directory
Item functions:
---------------
A channel may contain any number of item functions.
An item may represent a "story" much like a story in a newspaper or magazine
If so its description is a synopsis of the story, and the link points to the full story.
An item may also be complete in itself, if so, the description contains the text,
and the link and title may be omitted.
All elements of an item are optional, however at least one of title or description must be present.
- function itemTitle($title)
*R / *O
The title of the item
- function itemLink($link);
*O
The URL of the item
- function itemDescription($description);
*R / *O
The item synopsis
- function itemAuthor($author);
*O
Email address of the author of the item
- function itemCategory($category, $domain = '');
*O
Includes the item in one or more categories.
It has one optional attribute, domain, a string that identifies a categorization taxonomy
The value of the element is a forward-slash-separated string that identifies a hierarchic location in the indicated taxonomy.
Processors may establish conventions for the interpretation of categories.
You may include as many category elements as you need to, for different domains,
and to have an item cross-referenced in different parts of the same domain.
- function itemComments($comments);
*O
URL of a page for comments relating to the item
- function itemEnclosure($enclosure);
*O
Describes a media object that is attached to the item
- function itemGuid($guid, $isPermaLink = '');
*O
A string that uniquely identifies the item
If the guid element has an attribute named "isPermaLink" with a value of true,
the reader may assume that it is a permalink to the item, that is, a url that can be opened in a Web browser,
that points to the full item described by the <item> element
- function itemPubDate($pubDate);
*O
Indicates when the item was published
- function itemSource($source, $url);
*O
The RSS channel that the item came from
- function addItem();
*R
You place this function after all item functions.
You can create unlimited number of items.
- function RSSdone();
*R
This is the last you write in your code
- function clearRSS();
*R / *O
You write this function if You want to create a new RSS channel without reinitializing the class
Click to
Download File| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |
More Miscellaneous Code Articles
More By Codewalkers
developerWorks - FREE Tools! |
This demonstration gives you an overview of IBM® Rational® Build Forge Express Edition, a global offering that provides a framework to automate and execute software processes. Rational Build Forge provides a software assembly line that can support all of your tools, technologies, and platforms so you can achieve a repeatable, reliable, and traceable build and release process. FREE! Go There Now!
|
|
|
|
Attend this launch webcast with Scott Hebner, Vice President of IBM Rational Marketing and Strategy, for an overview of Rational’s new software offerings and resources to help modernize and accelerate software innovation on i on Power Systems – while ensuring past application investments are protected and continue to grow. Learn how these solutions are helping customers extend their core i5/OS solutions toward modern architectures such as SOA and web technologies to deliver business improvements that stand the test of time. FREE! Go There Now!
|
|
|
|
Visit IBM developerWorks to download a free trial version of Lotus Quickr 8.0, which enables collaboration by transforming the way everyday business content such as documents, rich media, photos, and video can be shared. Lotus Quickr makes it faster and easier to share content of all types (not just documents) within virtual teams. It is designed to make it easier to collaborate across organizational boundaries, while continuing to work within the context of familiar desktop applications. FREE! Go There Now!
|
|
|
|
Visit IBM developerWorks to download a free trial of the latest release of IBM Lotus Sametime Standard V8.0. Lotus Sametime Standard V8.0 is a platform for unified communications and collaboration that combines security features with an extensible, open solution including integrated Voice over IP, geographic location awareness, mobile clients, and a robust Business Partner community offering telephony and video integration. FREE! Go There Now!
|
|
|
|
Download a free trial version of IBM Rational Software Analyzer Developer Edition V7.0 to identify bug defects earlier in the software development cycle. Rational Software Analyzer is an extensible software development solution that reduces the expense of bug-fixes by enabling static analysis code reviews and bug identification very early in the development cycle. FREE! Go There Now!
|
|
|
|
Learn how Rational Build Forge can extend a simple compile and package build process by adding customization and deployment capability. Go from a manual method to automating: checking for code changes; getting the latest source; compiling and packaging; customizing; copying to and restarting a deployment server; and sending e-mail notification that a new version is available. FREE! Go There Now!
|
|
|
|
Join this Rational Talks to You teleconference on December 11 at 1:00 pm ET to get tips on building your own plugins with Rational Method Composer. Get your questions answered! FREE! Go There Now!
|
|
|
|
Join this Rational Talks to You teleconference on December 6 at 1:00 pm ET to participate in an agile application development discussion and get your questions answered on using IBM Rational Method Composer in a distributed environment.Get your questions answered! FREE! Go There Now!
|
|
|
|
This whitepaper provides areas to consider when evaluating any software configuration management solution. It addresses how the IBM solutions (Rational ClearCase and Rational ClearQuest) meet the needs and requirements of both project leaders and developers to provide successful Software Change and Configuration Management. FREE! Go There Now!
|
|
|
|
Explore how Rational and WebSphere software enable enterprise documentation in SOA environments. Specifically, a new integration between IBM WebSphere® Business Modeler and IBM Rational® Method Composer software can help technical writers more easily keep enterprise operations manuals in sync with changes that are made to business processes, resulting in more accurate and timely documentation that benefits the entire enterprise. FREE! Go There Now!
|
|
|
|
All FREE IBM® developerWorks Tools! |