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! |
Hold your calendar on January 30, 2008 for this free webcast on the new i5/OS. Rational's Enterprise Modernization products will be discussed at this webcast as they help to drive the application development environment for this new System i OS. <br />And learn how i5/OS will take you to the next step of efficient, resilient business processing. You will hear about the new i5/OS capabilities as it will be the most significant i5/OS release in years. If you cannot join the webcast on 1/30/08 you can still use this link to listen to the replay.<br /> FREE! Go There Now!
|
|
|
|
Hear how IBM Rational Project and Portfolio Management integrated solutions help teams put the right tools and processes in place to maximize the effectiveness and efficiency of project teams and ensure that the business vision is being executed correctly. Learn how to automate and integrate requirements prioritization, top-down project planning, communications and controls, and methodology deployment to keep your scope, costs, and schedules under control. Tackle with an end-to-end approach the management of scope and scope changes, usage of methodology to control and empower project teams, and optimization of resources to align activity costs with the overall project plan. FREE! Go There Now!
|
|
|
|
Build secure Web services with transport-level security using IBM Rational Application Developer V7 and IBM WebSphere Application Server V6.1. Follow this three-part series for step-by-step instructions about how to develop Web services and clients, configure HTTP basic authentication, and configure HTTP over SSL (HTTPS). This first part of the series walks you through building a Web service for a simple calculator application. You generate and test two different types of Web services clients: a Java Platform, Enterprise Edition (Java EE) client and a stand-alone Java client. You also handle user-defined exceptions in Web services. FREE! Go There Now!
|
|
|
|
Join us for this on demand webcast to learn about developing complex systems more quickly and efficiently. We'll cover market drivers for developing, governing and reusing systems software assets and how you can develop system software assets with Rational Asset Manager. FREE! Go There Now!
|
|
|
|
Visit IBM developerWorks to download the latest trial version of IBM Data Studio V1.1 at no cost. IBM Data Studio is a comprehensive data management solution that helps you effectively design, develop, deploy and manage your data, databases, and database applications throughout the data management life cycle utilizing a consistent and integrated user interface. Unlike other client-side data management solutions that focus on only one aspect of the application lifecycle or database administration, Data Studio complements the Rational Software Delivery platform, providing unparalleled flexibility for a heterogeneous data server environment across platforms. FREE! Go There Now!
|
|
|
|
Download the IBM WebSphere Portal V6.1 beta code and learn more about the rich features and enhancements in IBM WebSphere Portal V6.1. WebSphere Portal provides a composite application or business mashup framework and the advanced tooling needed to build flexible, SOA-based solutions, and scalability to meet the needs of any size organization. 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!
|
|
|
|
Get a free trial download of the latest version of IBM Rational Tester for SOA Quality V7.0.1, a functional and regression testing tool that enables the creation, comprehension, modification and execution of testing GUI-less Web services. FREE! Go There Now!
|
|
|
|
In this webcast, you'll get an introduction to the eXtreme Transaction Processing (XTP) features of WebSphere Extended Deployment and the common architectural traits required by XTP applications. See how WebSphere Extended Deployment's ObjectGrid feature provides a state-of-the-art infrastructure for hosting XTP applications. FREE! Go There Now!
|
|
|
|
User communities play an important role in communication and collaboration around products, solutions and other areas of special interest to members. Successful communities are able to provide the right mix of content and services to deliver a value proposition that resonates with each audience. Join Tom Inman, VP of Marketing for Information and Platform Solutions as he introduces the new LeverageINFORMATION community. During this webcast, learn about the value provided by the community and how customers and partners derive value from the community in addressing their own technical and business challenges. FREE! Go There Now!
|
|
|
|
All FREE IBM® developerWorks Tools! |