Author: as
Date: Wed Oct 31 16:54:21 2007
New Revision: 6645
Log:
- Added support for 'cloud' RSS2 feed element.
Added:
trunk/Feed/tests/rss2/regression/generate/optional/cloud/
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure+protocol.in
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure+protocol.out
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure.in
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure.out
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path.in
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path.out
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port.in
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port.out
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain.in
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain.out
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_empty.in
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_empty.out
trunk/Feed/tests/rss2/regression/parse/optional/cloud/
trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_complete.in
trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_complete.out
trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_empty.in
trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_empty.out
Modified:
trunk/Feed/src/feed.php
trunk/Feed/src/processors/rss2.php
Modified: trunk/Feed/src/feed.php
==============================================================================
--- trunk/Feed/src/feed.php [iso-8859-1] (original)
+++ trunk/Feed/src/feed.php [iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -192,6 +192,7 @@
case 'skipDays': // optional in RSS2
case 'rating':
case 'textInput':
+ case 'cloud':
$this->feedProcessor->set( $property, $value );
break;
@@ -237,6 +238,7 @@
case 'skipDays': // optional in RSS2
case 'rating':
case 'textInput':
+ case 'cloud':
$value = $this->feedProcessor->get( $property );
return $value;
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 16:54:21 2007
@@ -67,6 +67,13 @@
), ),
'rating' => array( '#' => 'string' ),
+ 'cloud' => array( '#' => 'none',
+ 'ATTRIBUTES' => array( 'domain' => 'string',
+ 'port' => 'string',
+ 'path' => 'string',
+ 'registerProcedure'
=> 'string',
+ 'protocol' =>
'string' ), ),
+
'textInput' => array( '#' => 'none',
'NODES' => array(
'title' => array(
'#' => 'string' ),
@@ -134,6 +141,7 @@
'category', 'generator', 'docs',
'ttl', 'image', 'rating',
'textInput', 'skipHours', 'skipDays',
+ 'cloud',
), // don't include 'item' here
'MULTI' => array( 'links' => 'link',
@@ -274,6 +282,10 @@
$this->generateTextInput( $this->get( 'textInput' ) );
break;
+ case 'cloud':
+ $this->generateCloud( $this->get( 'cloud' ) );
+ break;
+
default:
if ( !is_array( $data ) )
{
@@ -420,6 +432,31 @@
$this->generateMetaData( $image, $element, $data );
}
+ }
+
+ /**
+ * Adds a cloud node to the XML document being generated.
+ *
+ * @param ezcFeedElement $feedElement The cloud feed element
+ * @ignore
+ */
+ protected function generateCloud( ezcFeedElement $feedElement )
+ {
+ $cloud = $this->xml->createElement( 'cloud' );
+ $this->channel->appendChild( $cloud );
+
+ $attributes = array();
+ foreach ( $this->schema->getAttributes( 'cloud' ) as $element =>
$value )
+ {
+ $data = $feedElement->$element;
+ if ( is_null( $data ) )
+ {
+ throw new ezcFeedRequiredMetaDataMissingException( $element );
+ }
+ $attributes[$element] = $data;
+ }
+
+ $this->generateMetaDataWithAttributes( $cloud, $element, false,
$attributes );
}
/**
@@ -640,6 +677,10 @@
$element->set( $channelChild->textContent );
break;
+ case 'cloud':
+ $element = $feed->add( $tagName );
+ break;
+
case 'published':
case 'updated':
$feed->$tagName = ezcFeedTools::prepareDate(
$channelChild->textContent );
@@ -677,7 +718,7 @@
foreach ( ezcFeedTools::getAttributes( $channelChild ) as $key =>
$value )
{
- if ( in_array( $tagName, array( 'category' ) ) )
+ if ( in_array( $tagName, array( 'category', 'cloud' ) ) )
{
$element->$key = $value;
}
Added:
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure+protocol.in
==============================================================================
---
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure+protocol.in
(added)
+++
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure+protocol.in
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,11 @@
+<?php
+return array( 'title' => 'Feed title',
+ 'link' => array( 'Feed link' ),
+ 'description' => 'Feed description',
+ 'cloud' => array( array( 'domain' => 'Cloud domain',
+ 'port' => 'Cloud port',
+ 'path' => 'Cloud path',
+ 'registerProcedure' => 'Cloud
procedure',
+ 'protocol' => 'Cloud protocol' ) ),
+ );
+?>
Added:
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure+protocol.out
==============================================================================
---
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure+protocol.out
(added)
+++
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure+protocol.out
[iso-8859-1] Wed Oct 31 16:54:21 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>
+ <pubDate>XXX</pubDate>
+ <generator>eZ Components</generator>
+ <docs>http://www.rssboard.org/rss-specification</docs>
+ <cloud>
+ <protocol domain="Cloud domain" port="Cloud port" path="Cloud path"
registerProcedure="Cloud procedure" protocol="Cloud protocol"/>
+ </cloud>
+ </channel>
+</rss>
Added:
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure.in
==============================================================================
---
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure.in
(added)
+++
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure.in
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,10 @@
+<?php
+return array( 'title' => 'Feed title',
+ 'link' => array( 'Feed link' ),
+ 'description' => 'Feed description',
+ 'cloud' => array( array( 'domain' => 'Cloud domain',
+ 'port' => 'Cloud port',
+ 'path' => 'Cloud path',
+ 'registerProcedure' => 'Cloud
procedure' ) ),
+ );
+?>
Added:
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure.out
==============================================================================
---
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure.out
(added)
+++
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path+registerProcedure.out
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,1 @@
+There was no data submitted for required channel attribute 'protocol'.
Added:
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path.in
==============================================================================
---
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path.in
(added)
+++
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path.in
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,9 @@
+<?php
+return array( 'title' => 'Feed title',
+ 'link' => array( 'Feed link' ),
+ 'description' => 'Feed description',
+ 'cloud' => array( array( 'domain' => 'Cloud domain',
+ 'port' => 'Cloud port',
+ 'path' => 'Cloud path' ) ),
+ );
+?>
Added:
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path.out
==============================================================================
---
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path.out
(added)
+++
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port+path.out
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,1 @@
+There was no data submitted for required channel attribute 'registerProcedure'.
Added:
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port.in
==============================================================================
---
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port.in
(added)
+++
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port.in
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,8 @@
+<?php
+return array( 'title' => 'Feed title',
+ 'link' => array( 'Feed link' ),
+ 'description' => 'Feed description',
+ 'cloud' => array( array( 'domain' => 'Cloud domain',
+ 'port' => 'Cloud port' ) ),
+ );
+?>
Added:
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port.out
==============================================================================
---
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port.out
(added)
+++
trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain+port.out
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,1 @@
+There was no data submitted for required channel attribute 'path'.
Added: trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain.in
(added)
+++ trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain.in
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,7 @@
+<?php
+return array( 'title' => 'Feed title',
+ 'link' => array( 'Feed link' ),
+ 'description' => 'Feed description',
+ 'cloud' => array( array( 'domain' => 'Cloud domain' ) ),
+ );
+?>
Added: trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain.out
(added)
+++ trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_domain.out
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,1 @@
+There was no data submitted for required channel attribute 'port'.
Added: trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_empty.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_empty.in
(added)
+++ trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_empty.in
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,7 @@
+<?php
+return array( 'title' => 'Feed title',
+ 'link' => array( 'Feed link' ),
+ 'description' => 'Feed description',
+ 'cloud' => array( array() ),
+ );
+?>
Added: trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_empty.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_empty.out
(added)
+++ trunk/Feed/tests/rss2/regression/generate/optional/cloud/cloud_empty.out
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,1 @@
+There was no data submitted for required channel attribute 'domain'.
Added: trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_complete.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_complete.in
(added)
+++ trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_complete.in
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rss version="2.0">
+ <channel>
+ <title>Feed title</title>
+ <link>Feed link</link>
+ <description>Feed description</description>
+ <cloud domain="Cloud domain" port="Cloud port" path="Cloud path"
registerProcedure="Cloud procedure" protocol="Cloud protocol"/>
+ </channel>
+</rss>
Added: trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_complete.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_complete.out
(added)
+++ trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_complete.out
[iso-8859-1] Wed Oct 31 16:54:21 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';
+
+$cloud = $feed->add( 'cloud' );
+$cloud->domain = 'Cloud domain';
+$cloud->port = 'Cloud port';
+$cloud->path = 'Cloud path';
+$cloud->registerProcedure = 'Cloud procedure';
+$cloud->protocol = 'Cloud protocol';
+
+return $feed;
+?>
Added: trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_empty.in
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_empty.in (added)
+++ trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_empty.in
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rss version="2.0">
+ <channel>
+ <title>Feed title</title>
+ <link>Feed link</link>
+ <description>Feed description</description>
+ <cloud/>
+ </channel>
+</rss>
Added: trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_empty.out
==============================================================================
--- trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_empty.out
(added)
+++ trunk/Feed/tests/rss2/regression/parse/optional/cloud/cloud_empty.out
[iso-8859-1] Wed Oct 31 16:54:21 2007
@@ -1,0 +1,14 @@
+<?php
+$feed = new ezcFeed( 'rss2' );
+
+$feed->title = 'Feed title';
+
+$link = $feed->add( 'link' );
+$link->set( 'Feed link' );
+
+$feed->description = 'Feed description';
+
+$cloud = $feed->add( 'cloud' );
+
+return $feed;
+?>
--
svn-components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/svn-components