Author: as Date: Mon Nov 19 13:21:22 2007 New Revision: 6761 Log: - Added support for 'rights' ATOM feed sub-element (accessed as 'copyright' through ezcFeed). - Also fixed getItemsMap() in ezcFeedSchema.
Added: trunk/Feed/tests/atom/regression/generate/entry/rights/ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.in trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.out trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.in trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.out trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.in trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.out trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.in trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.out trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.in trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.out trunk/Feed/tests/atom/regression/parse/entry/rights/ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.in trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.out trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.in trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.out trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.in trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.out trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.in trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.out trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.in trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.out Modified: trunk/Feed/src/processors/atom.php trunk/Feed/src/structs/feed_schema.php Modified: trunk/Feed/src/processors/atom.php ============================================================================== --- trunk/Feed/src/processors/atom.php [iso-8859-1] (original) +++ trunk/Feed/src/processors/atom.php [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -707,6 +707,7 @@ switch ( $element ) { case 'summary': + case 'rights': $dataNode = $data; if ( is_array( $data ) ) { @@ -919,6 +920,7 @@ if ( $itemChild->nodeType === XML_ELEMENT_NODE ) { $tagName = $itemChild->tagName; + $tagName = ezcFeedTools::deNormalizeName( $tagName, $this->schema->getItemsMap() ); switch ( $tagName ) { @@ -928,6 +930,7 @@ case 'title': case 'summary': + case 'copyright': $type = ezcFeedTools::getAttribute( $itemChild, 'type' ); switch ( $type ) Modified: trunk/Feed/src/structs/feed_schema.php ============================================================================== --- trunk/Feed/src/structs/feed_schema.php [iso-8859-1] (original) +++ trunk/Feed/src/structs/feed_schema.php [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -255,7 +255,9 @@ */ public function getItemsMap() { - return isset( $this->schema['items']['ITEMS_MAP'] ) ? $this->schema['items']['ITEMS_MAP'] : array(); + $elementsMap = $this->getElementsMap(); + $itemName = isset( $elementsMap['item'] ) ? $elementsMap['item'] : 'item'; + return isset( $this->schema[$itemName]['ITEMS_MAP'] ) ? $this->schema[$itemName]['ITEMS_MAP'] : array(); } } ?> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.in ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.in (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,11 @@ +<?php +return array( 'id' => 'Feed id', + 'title' => array( array( '#' => 'Feed title' ) ), + 'updated' => 'Feed updated', + 'author' => array( array( 'name' => 'Author name' ) ), + 'item' => array( array( 'id' => 'Entry id', + 'title' => array( array( '#' => 'Entry title' ) ), + 'updated' => 'Entry updated', + 'content' => 'Entry content', + 'rights' => array( array() ) ) ) ); +?> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.out ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.out (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_empty.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title>Feed title</title> + <updated>XXX</updated> + <author> + <name>Author name</name> + </author> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>XXX</updated> + <content>Entry content</content> + <rights></rights> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.in ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.in (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,11 @@ +<?php +return array( 'id' => 'Feed id', + 'title' => array( array( '#' => 'Feed title' ) ), + 'updated' => 'Feed updated', + 'author' => array( array( 'name' => 'Author name' ) ), + 'item' => array( array( 'id' => 'Entry id', + 'title' => array( array( '#' => 'Entry title' ) ), + 'updated' => 'Entry updated', + 'content' => 'Entry content', + 'rights' => array( array( '#' => 'Entry rights' ) ) ) ) ); +?> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.out ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.out (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_absent.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title>Feed title</title> + <updated>XXX</updated> + <author> + <name>Author name</name> + </author> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>XXX</updated> + <content>Entry content</content> + <rights>Entry rights</rights> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.in ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.in (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,12 @@ +<?php +return array( 'id' => 'Feed id', + 'title' => array( array( '#' => 'Feed title' ) ), + 'updated' => 'Feed updated', + 'author' => array( array( 'name' => 'Author name' ) ), + 'item' => array( array( 'id' => 'Entry id', + 'title' => array( array( '#' => 'Entry title' ) ), + 'updated' => 'Entry updated', + 'content' => 'Entry content', + 'rights' => array( array( '#' => 'Entry rights', + 'type' => 'html' ) ) ) ) ); +?> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.out ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.out (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_html.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title>Feed title</title> + <updated>XXX</updated> + <author> + <name>Author name</name> + </author> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>XXX</updated> + <content>Entry content</content> + <rights type="html">Entry rights</rights> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.in ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.in (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,12 @@ +<?php +return array( 'id' => 'Feed id', + 'title' => array( array( '#' => 'Feed title' ) ), + 'updated' => 'Feed updated', + 'author' => array( array( 'name' => 'Author name' ) ), + 'item' => array( array( 'id' => 'Entry id', + 'title' => array( array( '#' => 'Entry title' ) ), + 'updated' => 'Entry updated', + 'content' => 'Entry content', + 'rights' => array( array( '#' => 'Entry rights', + 'type' => 'text' ) ) ) ) ); +?> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.out ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.out (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_text.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title>Feed title</title> + <updated>XXX</updated> + <author> + <name>Author name</name> + </author> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>XXX</updated> + <content>Entry content</content> + <rights type="text">Entry rights</rights> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.in ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.in (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,12 @@ +<?php +return array( 'id' => 'Feed id', + 'title' => array( array( '#' => 'Feed title' ) ), + 'updated' => 'Feed updated', + 'author' => array( array( 'name' => 'Author name' ) ), + 'item' => array( array( 'id' => 'Entry id', + 'title' => array( array( '#' => 'Entry title' ) ), + 'updated' => 'Entry updated', + 'content' => 'Entry content', + 'rights' => array( array( '#' => 'Entry rights', + 'type' => 'xhtml' ) ) ) ) ); +?> Added: trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.out ============================================================================== --- trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.out (added) +++ trunk/Feed/tests/atom/regression/generate/entry/rights/rights_type_xhtml.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title>Feed title</title> + <updated>XXX</updated> + <author> + <name>Author name</name> + </author> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>XXX</updated> + <content>Entry content</content> + <rights type="xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml"> + <xhtml:div>Entry rights</xhtml:div> + </rights> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.in ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.in (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title type="text">Feed title</title> + <updated>Feed updated</updated> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>2007-11-14T16:23:40+01:00</updated> + <rights/> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.out ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.out (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_empty.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,17 @@ +<?php +$feed = new ezcFeed( 'atom' ); + +$feed->id = 'Feed id'; +$feed->title = 'Feed title'; +$feed->title->type = 'text'; +$feed->updated = 'Feed updated'; + +$entry = $feed->add( 'entry' ); +$entry->id = 'Entry id'; +$entry->title = 'Entry title'; +$entry->updated = 1195053820; + +$entry->copyright = ''; + +return $feed; +?> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.in ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.in (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title>Feed title</title> + <updated>Feed updated</updated> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>2007-11-14T16:23:40+01:00</updated> + <rights>Entry rights</rights> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.out ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.out (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_absent.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,16 @@ +<?php +$feed = new ezcFeed( 'atom' ); + +$feed->id = 'Feed id'; +$feed->title = 'Feed title'; +$feed->updated = 'Feed updated'; + +$entry = $feed->add( 'entry' ); +$entry->id = 'Entry id'; +$entry->title = 'Entry title'; +$entry->updated = 1195053820; + +$entry->copyright = 'Entry rights'; + +return $feed; +?> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.in ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.in (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title>Feed title</title> + <updated>Feed updated</updated> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>2007-11-14T16:23:40+01:00</updated> + <rights type="html">Entry rights</rights> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.out ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.out (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_html.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,17 @@ +<?php +$feed = new ezcFeed( 'atom' ); + +$feed->id = 'Feed id'; +$feed->title = 'Feed title'; +$feed->updated = 'Feed updated'; + +$entry = $feed->add( 'entry' ); +$entry->id = 'Entry id'; +$entry->title = 'Entry title'; +$entry->updated = 1195053820; + +$entry->copyright = 'Entry rights'; +$entry->copyright->type = 'html'; + +return $feed; +?> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.in ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.in (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title>Feed title</title> + <updated>Feed updated</updated> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>2007-11-14T16:23:40+01:00</updated> + <rights type="text">Entry rights</rights> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.out ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.out (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_text.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,17 @@ +<?php +$feed = new ezcFeed( 'atom' ); + +$feed->id = 'Feed id'; +$feed->title = 'Feed title'; +$feed->updated = 'Feed updated'; + +$entry = $feed->add( 'entry' ); +$entry->id = 'Entry id'; +$entry->title = 'Entry title'; +$entry->updated = 1195053820; + +$entry->copyright = 'Entry rights'; +$entry->copyright->type = 'text'; + +return $feed; +?> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.in ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.in (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.in [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>Feed id</id> + <title>Feed title</title> + <updated>Feed updated</updated> + <entry> + <id>Entry id</id> + <title>Entry title</title> + <updated>2007-11-14T16:23:40+01:00</updated> + <rights type="xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml"> + <xhtml:div>Entry rights</xhtml:div> + </rights> + </entry> +</feed> Added: trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.out ============================================================================== --- trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.out (added) +++ trunk/Feed/tests/atom/regression/parse/entry/rights/rights_type_xhtml.out [iso-8859-1] Mon Nov 19 13:21:22 2007 @@ -1,0 +1,17 @@ +<?php +$feed = new ezcFeed( 'atom' ); + +$feed->id = 'Feed id'; +$feed->title = 'Feed title'; +$feed->updated = 'Feed updated'; + +$entry = $feed->add( 'entry' ); +$entry->id = 'Entry id'; +$entry->title = 'Entry title'; +$entry->updated = 1195053820; + +$entry->copyright = 'Entry rights'; +$entry->copyright->type = 'xhtml'; + +return $feed; +?> -- svn-components mailing list svn-components@lists.ez.no http://lists.ez.no/mailman/listinfo/svn-components