Author: as Date: Wed Oct 31 11:14:06 2007 New Revision: 6641 Log: - Added support for 'item/source' RSS2 feed element.
Added: trunk/Feed/tests/rss2/regression/generate/item/source/ trunk/Feed/tests/rss2/regression/generate/item/source/source.in trunk/Feed/tests/rss2/regression/generate/item/source/source.out trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.in trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.out trunk/Feed/tests/rss2/regression/generate/item/source/source_url.in trunk/Feed/tests/rss2/regression/generate/item/source/source_url.out trunk/Feed/tests/rss2/regression/parse/item/source/ trunk/Feed/tests/rss2/regression/parse/item/source/source.in trunk/Feed/tests/rss2/regression/parse/item/source/source.out trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.in trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.out trunk/Feed/tests/rss2/regression/parse/item/source/source_url.in trunk/Feed/tests/rss2/regression/parse/item/source/source_url.out Modified: trunk/Feed/src/processors/rss2.php Modified: trunk/Feed/src/processors/rss2.php ============================================================================== --- trunk/Feed/src/processors/rss2.php [iso-8859-1] (original) +++ trunk/Feed/src/processors/rss2.php [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -108,7 +108,8 @@ 'ATTRIBUTES' => array( 'isPermaLink' => 'string' ) ), 'pubDate' => array( '#' => 'string' ), - 'source' => array( '#' => 'string' ), + 'source' => array( '#' => 'string', + 'ATTRIBUTES' => array( 'url' => 'string' ) ), 'AT_LEAST_ONE' => array( 'title', 'description' ), 'OPTIONAL' => array( 'title', 'link', 'description', @@ -493,6 +494,20 @@ } } + break; + + case 'source': + if ( is_array( $metaData ) ) + { + $metaData = $metaData[0]; + } + + if ( !isset( $metaData->url ) ) + { + throw new ezcFeedRequiredMetaDataMissingException( 'item/source/url' ); + } + $attributes = array( 'url' => $metaData->url ); + $this->generateMetaDataWithAttributes( $itemTag, $normalizedAttribute, $metaData, $attributes ); break; default: Added: trunk/Feed/tests/rss2/regression/generate/item/source/source.in ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/source/source.in (added) +++ trunk/Feed/tests/rss2/regression/generate/item/source/source.in [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,10 @@ +<?php +return array( 'title' => 'Feed title', + 'link' => array( 'Feed link' ), + 'description' => 'Feed description', + 'item' => array( array( 'title' => 'Item title', + 'link' => 'Item link', + 'description' => 'Item description', + 'source' => 'Item source' ), ), + ); +?> Added: trunk/Feed/tests/rss2/regression/generate/item/source/source.out ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/source/source.out (added) +++ trunk/Feed/tests/rss2/regression/generate/item/source/source.out [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,1 @@ +There was no data submitted for required channel attribute 'item/source/url'. Added: trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.in ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.in (added) +++ trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.in [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,10 @@ +<?php +return array( 'title' => 'Feed title', + 'link' => array( 'Feed link' ), + 'description' => 'Feed description', + 'item' => array( array( 'title' => 'Item title', + 'link' => 'Item link', + 'description' => 'Item description', + 'source' => null ), ), + ); +?> Added: trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.out ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.out (added) +++ trunk/Feed/tests/rss2/regression/generate/item/source/source_empty.out [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,1 @@ +There was no data submitted for required channel attribute 'item/source/url'. Added: trunk/Feed/tests/rss2/regression/generate/item/source/source_url.in ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/source/source_url.in (added) +++ trunk/Feed/tests/rss2/regression/generate/item/source/source_url.in [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,11 @@ +<?php +return array( 'title' => 'Feed title', + 'link' => array( 'Feed link' ), + 'description' => 'Feed description', + 'item' => array( array( 'title' => 'Item title', + 'link' => 'Item link', + 'description' => 'Item description', + 'source' => array( '#' => 'Item source', + 'url' => 'Source url' ) ), ), + ); +?> Added: trunk/Feed/tests/rss2/regression/generate/item/source/source_url.out ============================================================================== --- trunk/Feed/tests/rss2/regression/generate/item/source/source_url.out (added) +++ trunk/Feed/tests/rss2/regression/generate/item/source/source_url.out [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<rss version="2.0"> + <channel> + <title>Feed title</title> + <link>Feed link</link> + <description>Feed description</description> + <pubDate>XXX</pubDate> + <generator>eZ Components</generator> + <docs>http://www.rssboard.org/rss-specification</docs> + <item> + <title>Item title</title> + <link>Item link</link> + <description>Item description</description> + <source url="Source url">Item source</source> + </item> + </channel> +</rss> Added: trunk/Feed/tests/rss2/regression/parse/item/source/source.in ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/source/source.in (added) +++ trunk/Feed/tests/rss2/regression/parse/item/source/source.in [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<rss version="2.0"> + <channel> + <title>Feed title</title> + <link>Feed link</link> + <description>Feed description</description> + <item> + <title>Item title</title> + <link>Item link</link> + <description>Item description</description> + <source>Item source</source> + </item> + </channel> +</rss> Added: trunk/Feed/tests/rss2/regression/parse/item/source/source.out ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/source/source.out (added) +++ trunk/Feed/tests/rss2/regression/parse/item/source/source.out [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,18 @@ +<?php +$feed = new ezcFeed( 'rss2' ); +$feed->title = 'Feed title'; + +$link = $feed->add( 'link' ); +$link->set( 'Feed link' ); + +$feed->description = 'Feed description'; + +$item = $feed->add( 'item' ); +$item->title = 'Item title'; +$item->link = 'Item link'; +$item->description = 'Item description'; + +$item->source = 'Item source'; + +return $feed; +?> Added: trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.in ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.in (added) +++ trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.in [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<rss version="2.0"> + <channel> + <title>Feed title</title> + <link>Feed link</link> + <description>Feed description</description> + <item> + <title>Item title</title> + <link>Item link</link> + <description>Item description</description> + <source/> + </item> + </channel> +</rss> Added: trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.out ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.out (added) +++ trunk/Feed/tests/rss2/regression/parse/item/source/source_empty.out [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,18 @@ +<?php +$feed = new ezcFeed( 'rss2' ); +$feed->title = 'Feed title'; + +$link = $feed->add( 'link' ); +$link->set( 'Feed link' ); + +$feed->description = 'Feed description'; + +$item = $feed->add( 'item' ); +$item->title = 'Item title'; +$item->link = 'Item link'; +$item->description = 'Item description'; + +$item->source = null; + +return $feed; +?> Added: trunk/Feed/tests/rss2/regression/parse/item/source/source_url.in ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/source/source_url.in (added) +++ trunk/Feed/tests/rss2/regression/parse/item/source/source_url.in [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<rss version="2.0"> + <channel> + <title>Feed title</title> + <link>Feed link</link> + <description>Feed description</description> + <item> + <title>Item title</title> + <link>Item link</link> + <description>Item description</description> + <source url="Source url">Item source</source> + </item> + </channel> +</rss> Added: trunk/Feed/tests/rss2/regression/parse/item/source/source_url.out ============================================================================== --- trunk/Feed/tests/rss2/regression/parse/item/source/source_url.out (added) +++ trunk/Feed/tests/rss2/regression/parse/item/source/source_url.out [iso-8859-1] Wed Oct 31 11:14:06 2007 @@ -1,0 +1,19 @@ +<?php +$feed = new ezcFeed( 'rss2' ); +$feed->title = 'Feed title'; + +$link = $feed->add( 'link' ); +$link->set( 'Feed link' ); + +$feed->description = 'Feed description'; + +$item = $feed->add( 'item' ); +$item->title = 'Item title'; +$item->link = 'Item link'; +$item->description = 'Item description'; + +$item->source = 'Item source'; +$item->source->url = 'Source url'; + +return $feed; +?> -- svn-components mailing list svn-components@lists.ez.no http://lists.ez.no/mailman/listinfo/svn-components