Location: PHPKode > projects > RSS Framework for PHP > dump.php
<?php error_reporting(E_ALL);
	
/**
 * Dynamic Networks RSS Framework for PHP This is an example file on how to use
 * the framework. Please note that the referenced URIs in this file are fake and
 * do not point to an actual resource on the internet.
 * 
 * @author Gordon Oheim (hide@address.com)
 * @copyright Copyright 2005, Dynamic Networks
 * @link http://www.dynamicnetworks.de
 * @license http://creativecommons.org/licenses/GPL/2.0/ GNU General Public License
 * @filesource
 * @version 1.1.0
 */
 	 
	/* we will need our framework and the parser for this */
	$path = 'src/classes/';
	set_include_path(get_include_path() . PATH_SEPARATOR . $path);

	require_once("xmlbaseclass.php");
	require_once("RSS20/feed.php");
	require_once("parser/transformer.php");
	require_once("mediaRSS/mediarss.php");

	/* create new feed */
	$rss = new feed();

	/* create new channel */
	$channel = new channel();
	$channel->set_title ("Sample Channel");
	$channel->set_description ("This is a sample channel.");
	$channel->set_link (new url("http://dynamicnetworks.de/rss/sample.htm"));
	$channel->set_copyright("Copyright 2005 - Dynamic Networks");
	$channel->set_docs (new url("http://dynamicnetworks.de/projects/rssframework/docs"));
	$channel->set_language ("en");
	$channel->set_managingEditor (new email("hide@address.com", "Gordon Oheim"));
	$channel->set_rating ('PICS-Label: (PICS-1.1 "http://vancouver-webpages.com/VWP1.0/" l gen false by "hide@address.com" on "2005.01.19T04:03-0800" for "http://dynamicnetworks.de/rss/sample.htm" r (P 0 S 0 V 0 Com 0 Tol 0 Env 0 SF 0 Edu 0 Can 0 MC 0 Gam -1 ))');
	$channel->set_skipDays (array("MON", "FRI"));
	$channel->set_skipHours (array(0,1,2,3,4,5,6,23));
	$channel->set_ttl (60);
	$channel->set_webmaster (new email("hide@address.com", "Dynamic Networks")); 

	/* add an image to be displayed with the channel */
	$image = new image();
	$image->set_url (new url("http://dynamicnetworks.de/rss/images/sample.gif"));
	$image->set_description("Sample Image");
	$image->set_height (35);
	$image->set_width (100);
	$image->set_link ($channel->get_link());
	$image->set_title ($channel->get_title());
	$channel->set_image ($image);

	/* set a category for the channel */	
	$category = new category("Coding Example");
	$category->set_domain("Computer/Programming/XML/RSS/");
	$channel->set_category($category);
	
	/* set another category with the same taxonomy */
	$category->set_title("RSS Feed");
	$channel->set_category($category);

	/* add a cloud to the channel */
	$cloud = new cloud();
	$cloud->set_domain("dynamicnetworks.de");
	$cloud->set_path("cloudproc.php");
	$cloud->set_port(80);
	$cloud->set_protocol("SOAP");
	$cloud->set_registerProcedure("syncfeed"); 
	$channel->set_cloud ($cloud);

	/* add a textInput (useless as it is) to the channel */
	$desc = "Enter your comment here";
	$link = new url("http://dynamicnetworks.de/rss/comments/proc.php?id=samplefeed");
	$name = "comment";
	$title = "send comment";
	$textInput = new textInput($desc, $link, $name, $title);
	$channel->set_textInput ($textInput);

	/* add an item to the channel */
	$item = new item();
	$item->set_title("Sample entry number one");
	$item->set_description ("This is just a sample news item.");
	$item->set_link (new url("http://negative-infinity.de/rss/sample.htm#1"));
	$item->set_author(new email("hide@address.com", "Gordon Oheim"));
	$item->set_category($category);	// reusing from above
	$item->set_comments(new url("http://dynamicnetworks.de/rss/comments/proc.php?id=samplefeed"));
	$url = $item->get_link();
	$item->set_guid(new guid($url->get_url()));
	$item->set_pubDate();
	$item->set_source(new url("http://dynamicnetworks.de"));
	
	/* link an attachment to this item */
	$length =4096;
	$type = "application/zip";
	$url = new url("http://dynamicnetworks.de/rssframework/docs/framework_api.zip");
	$enclosure = new enclosure($url, $length, $type);
	$item->set_enclosure ($enclosure);
	
	/* alternatively you could use MediaRSS as a substitute */
	$mediaRSS = new mediaRSS();
	
	/* create a new mediaitem and add it*/
	$mediaitem = new mediacontent();
	$mediaitem->set_url(new url("http://www.example.com/audio/hooray_for_frameworks.mp3"));
	$mediaitem->set_bitrate(128);
	$mediaitem->set_type("application/mp3");
	$mediaitem->set_filesize(1024);
	$mediaitem->set_expression("sample");
	$mediaRSS->set_mediacontent($mediaitem);
	
	/* and another one */
	$mediaitem2 = new mediacontent();
	$mediaitem2->set_url(new url("http://www.example.com/audio/hooray_for_frameworks.mp3"));
	$mediaitem2->set_bitrate(256);
	$mediaitem2->set_type("application/mp3");
	$mediaitem2->set_filesize(5120);
	$mediaitem2->set_expression("full");
	$mediaitem2->set_mediacategory("audio/books/documentary");
	$mediaitem2->set_mediacategory("audio/books/programming");
	$mediaitem2->set_mediatext("This is the full version.");
	$mediaitem2->set_mediathumbnail(new mediathumbnail(new url("http://www.example.com/thumb2005.gif")));
	$mediaRSS->set_mediacontent($mediaitem2);
	
	/* add some more mediastuff that applies to all mediacontent elements */
	$mediaRSS->set_mediathumbnail(new mediathumbnail(new url("http://www.example.com/thumb.gif")));
	$mediapeople = new mediapeople();
	$mediapeople->set_role("producers");
	$mediapeople->set_person("Joe Pro");
	$mediapeople->set_person("Jack Ducer");	
	$mediaRSS->set_mediapeople($mediapeople);
	$mediaRSS->set_mediatext("This is a MediaRSS test enclosure");
	$mediaRSS->set_mediacategory("audio/books/listeningcomprehension");	
	
	/* dont forget to add the mediaRSS module to item*/
	$item->set_module($mediaRSS);

	/* and the item to the channel */
	$channel->set_item ($item);
	
	/* add another item to the channel but without an enclosure */
	$item2 = new item();
	$item2->set_title("Sample entry number two");
	$item2->set_description ("This is just another sample news item.");
	$item2->set_link (new url("http://negative-infinity.de/rss/sample.htm#2"));
	$item2->set_author(new email("hide@address.com", "Gordon Oheim"));
	$item2->set_category($category); // still reusing from above
	$item2->set_comments(new url("http://dynamicnetworks.de/rss/comments/proc.php?id=samplefeed"));
	$url = $item2->get_link();
	$item2->set_guid(new guid($url->get_url()));
	$item2->set_pubDate();
	$item2->set_source(new url("http://dynamicnetworks.de"));
	$channel->set_item ($item2);
	
	/* set the pubDate of the channel to now */
	$channel->set_pubDate ();
	
	/* finally add the channel to the feed */
	$rss->set_channel($channel);
	
	/**
	 * we are all set now with the basics. Let's dump the feed object.
	 */
	$xml = new transformer();
	$xml->make_dump($rss);
	$dom = $xml->get_dom();
	$dom->dump_file("sample.xml", false, true);
	
	/**
	 * and now transform it into RSS20
	 */
	 $xml->transform($dom, "src/xslt/RSS20/to_rss20.xslt");
	 $dom->dump_file("feed.xml", false, true); 
	
	/**
	 * done! simple as that.
	 */
?>
Return current item: RSS Framework for PHP