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
[email protected]
http://lists.ez.no/mailman/listinfo/svn-components