* Copyright (C) 2013 Michael Bemmerl * * This file is part of the "Universal Feed Writer" project. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ // Creating an instance of RSS2 class. $TestFeed = new RSS2; // Setting some basic channel elements. These three elements are mandatory. $TestFeed->setTitle('Testing & Checking the Feed Writer project'); $TestFeed->setLink('https://github.com/mibe/FeedWriter'); $TestFeed->setDescription('This is just an example how to use the Feed Writer project in your code.'); // Image title and link must match with the 'title' and 'link' channel elements for RSS 2.0, // which were set above. $TestFeed->setImage('Testing & Checking the Feed Writer project', 'https://github.com/mibe/FeedWriter', 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Rss-feed.svg/256px-Rss-feed.svg.png'); // Use core setChannelElement() function for other optional channel elements. // See http://www.rssboard.org/rss-specification#optionalChannelElements // for other optional channel elements. Here the language code for American English and $TestFeed->setChannelElement('language', 'en-US'); // The date when this feed was lastly updated. The publication date is also set. $TestFeed->setDate(date(DATE_RSS, time())); $TestFeed->setChannelElement('pubDate', date(\DATE_RSS, strtotime('2013-04-06'))); // You can add additional link elements, e.g. to a PubSubHubbub server with custom relations. // It's recommended to provide a backlink to the feed URL. $TestFeed->setSelfLink('http://example.com/myfeed'); $TestFeed->setAtomLink('http://pubsubhubbub.appspot.com', 'hub'); // You can add more XML namespaces for more custom channel elements which are not defined // in the RSS 2 specification. Here the 'creativeCommons' element is used. There are much more // available. Have a look at this list: http://feedvalidator.org/docs/howto/declare_namespaces.html $TestFeed->addNamespace('creativeCommons', 'http://backend.userland.com/creativeCommonsRssModule'); $TestFeed->setChannelElement('creativeCommons:license', 'http://www.creativecommons.org/licenses/by/1.0'); // If you want you can also add a line to publicly announce that you used // this fine piece of software to generate the feed. ;-) $TestFeed->addGenerator(); // Here we are done setting up the feed. What's next is adding some feed items. // Create a new feed item. $newItem = $TestFeed->createNewItem(); // Add basic elements to the feed item // These are again mandatory for a valid feed. $newItem->setTitle('Hello World!'); $newItem->setLink('http://www.example.com'); $newItem->setDescription('This is a test of adding a description by the Feed Writer classes. It\'s automatically CDATA encoded.'); // The following method calls add some optional elements to the feed item. // Let's set the publication date of this item. You could also use a UNIX timestamp or // an instance of PHP's DateTime class. $newItem->setDate('2013-04-07 00:50:30'); // You can also attach a media object to a feed item. You just need the URL, the byte length // and the MIME type of the media. Here's a quirk: The RSS2 spec says "The url must be an http url.". // Other schemes like ftp, https, etc. produce an error in feed validators. $newItem->setEnclosure('http://upload.wikimedia.org/wikipedia/commons/4/49/En-us-hello-1.ogg', 11779, 'audio/ogg'); // If you want you can set the name (and email address) of the author of this feed item. $newItem->setAuthor('Anis uddin Ahmad', 'admin@ajaxray.com'); // You can set a globally unique identifier. This can be a URL or any other string. // If you set permaLink to true, the identifier must be an URL. The default of the // permaLink parameter is false. $newItem->setId('http://example.com/URL/to/article', true); // Use the addElement() method for other optional elements. // This here will add the 'source' element. The second parameter is the value of the element // and the third is an array containing the element attributes. $newItem->addElement('source', 'Mike\'s page', array('url' => 'http://www.example.com')); // Now add the feed item to the main feed. $TestFeed->addItem($newItem); // Another method to add feeds items is by using an array which contains key-value pairs // of every item element. Elements which have attributes cannot be added by this way. $newItem = $TestFeed->createNewItem(); $newItem->addElementArray(array('title'=> 'The 2nd item', 'link' => 'http://www.google.com', 'description' => 'Just another test.')); $TestFeed->addItem($newItem); // OK. Everything is done. Now generate the feed. // If you want to send the feed directly to the browser, use the printFeed() method. $myFeed = $TestFeed->generateFeed(); // Do anything you want with the feed in $myFeed. Why not send it to the browser? ;-) // You could also save it to a file if you don't want to invoke your script every time. echo $myFeed;