Author: as
Date: Mon Nov 12 10:31:12 2007
New Revision: 6706
Log:
- Added support for parsing 'title' ATOM feed element.
Added:
trunk/Feed/tests/atom/regression/parse/required/
trunk/Feed/tests/atom/regression/parse/required/title/
trunk/Feed/tests/atom/regression/parse/required/title/title.in
trunk/Feed/tests/atom/regression/parse/required/title/title.out
trunk/Feed/tests/atom/regression/parse/required/title/title_html.in
trunk/Feed/tests/atom/regression/parse/required/title/title_html.out
trunk/Feed/tests/atom/regression/parse/required/title/title_text.in
trunk/Feed/tests/atom/regression/parse/required/title/title_text.out
trunk/Feed/tests/atom/regression/parse/required/title/title_xhtml.in
trunk/Feed/tests/atom/regression/parse/required/title/title_xhtml.out
Modified:
trunk/Feed/src/processors/atom.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 12 10:31:12 2007
@@ -266,6 +266,61 @@
$set = $xp->query( './namespace::*', $xml->documentElement );
$this->usedNamespaces = array();
+ foreach ( $channel->childNodes as $channelChild )
+ {
+ if ( $channelChild->nodeType == XML_ELEMENT_NODE )
+ {
+ $tagName = $channelChild->tagName;
+ $tagName = ezcFeedTools::deNormalizeName( $tagName,
$this->schema->getElementsMap() );
+
+ switch ( $tagName )
+ {
+ case 'title':
+ $type = ezcFeedTools::getAttribute( $channelChild,
'type' );
+
+ switch ( $type )
+ {
+ case 'xhtml':
+ $nodes = $channelChild->childNodes;
+ if ( $nodes instanceof DOMNodeList )
+ {
+ $contentNode = $nodes->item( 1 );
+ $feed->$tagName = $contentNode->nodeValue;
+ }
+ break;
+
+ case 'html':
+ $feed->$tagName = $channelChild->textContent;
+ break;
+
+ case 'text':
+ // same case as 'default'
+
+ default:
+ $feed->$tagName = $channelChild->textContent;
+ break;
+ }
+
+ break;
+
+ default:
+ // check if it's part of a known module/namespace
+ }
+ }
+
+ foreach ( ezcFeedTools::getAttributes( $channelChild ) as $key =>
$value )
+ {
+ if ( in_array( $tagName, array( 'category' ) ) )
+ {
+ $element->$key = $value;
+ }
+ else
+ {
+ $feed->$tagName->$key = $value;
+ }
+ }
+ }
+
return $feed;
}
Added: trunk/Feed/tests/atom/regression/parse/required/title/title.in
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/required/title/title.in (added)
+++ trunk/Feed/tests/atom/regression/parse/required/title/title.in [iso-8859-1]
Mon Nov 12 10:31:12 2007
@@ -1,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title>Feed title</title>
+</feed>
Added: trunk/Feed/tests/atom/regression/parse/required/title/title.out
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/required/title/title.out (added)
+++ trunk/Feed/tests/atom/regression/parse/required/title/title.out
[iso-8859-1] Mon Nov 12 10:31:12 2007
@@ -1,0 +1,5 @@
+<?php
+$feed = new ezcFeed( 'atom' );
+$feed->title = 'Feed title';
+return $feed;
+?>
Added: trunk/Feed/tests/atom/regression/parse/required/title/title_html.in
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/required/title/title_html.in (added)
+++ trunk/Feed/tests/atom/regression/parse/required/title/title_html.in
[iso-8859-1] Mon Nov 12 10:31:12 2007
@@ -1,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title type="html">Feed title</title>
+</feed>
Added: trunk/Feed/tests/atom/regression/parse/required/title/title_html.out
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/required/title/title_html.out (added)
+++ trunk/Feed/tests/atom/regression/parse/required/title/title_html.out
[iso-8859-1] Mon Nov 12 10:31:12 2007
@@ -1,0 +1,6 @@
+<?php
+$feed = new ezcFeed( 'atom' );
+$feed->title = 'Feed title';
+$feed->title->type = 'html';
+return $feed;
+?>
Added: trunk/Feed/tests/atom/regression/parse/required/title/title_text.in
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/required/title/title_text.in (added)
+++ trunk/Feed/tests/atom/regression/parse/required/title/title_text.in
[iso-8859-1] Mon Nov 12 10:31:12 2007
@@ -1,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title type="text">Feed title</title>
+</feed>
Added: trunk/Feed/tests/atom/regression/parse/required/title/title_text.out
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/required/title/title_text.out (added)
+++ trunk/Feed/tests/atom/regression/parse/required/title/title_text.out
[iso-8859-1] Mon Nov 12 10:31:12 2007
@@ -1,0 +1,6 @@
+<?php
+$feed = new ezcFeed( 'atom' );
+$feed->title = 'Feed title';
+$feed->title->type = 'text';
+return $feed;
+?>
Added: trunk/Feed/tests/atom/regression/parse/required/title/title_xhtml.in
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/required/title/title_xhtml.in (added)
+++ trunk/Feed/tests/atom/regression/parse/required/title/title_xhtml.in
[iso-8859-1] Mon Nov 12 10:31:12 2007
@@ -1,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title type="xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+ <xhtml:div>Feed title</xhtml:div>
+ </title>
+</feed>
Added: trunk/Feed/tests/atom/regression/parse/required/title/title_xhtml.out
==============================================================================
--- trunk/Feed/tests/atom/regression/parse/required/title/title_xhtml.out
(added)
+++ trunk/Feed/tests/atom/regression/parse/required/title/title_xhtml.out
[iso-8859-1] Mon Nov 12 10:31:12 2007
@@ -1,0 +1,6 @@
+<?php
+$feed = new ezcFeed( 'atom' );
+$feed->title = 'Feed title';
+$feed->title->type = 'xhtml';
+return $feed;
+?>
--
svn-components mailing list
[EMAIL PROTECTED]
http://lists.ez.no/mailman/listinfo/svn-components