Author: as
Date: Fri Nov  9 16:03:46 2007
New Revision: 6688

Log:
- Added support for generating 'rights' ATOM feed element.

Added:
    trunk/Feed/tests/atom/regression/generate/optional/rights/
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_empty.in
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_empty.out
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_html.in
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_html.out
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_no_type.in
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_no_type.out
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_text.in
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_text.out
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_xhtml.in
    trunk/Feed/tests/atom/regression/generate/optional/rights/rights_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] Fri Nov  9 16:03:46 2007
@@ -59,7 +59,9 @@
 
         'icon'          => array( '#'          => 'string' ),
         'logo'          => array( '#'          => 'string' ),
-        'rights'        => array( '#'          => 'string' ),
+        'rights'        => array( '#'          => 'string',
+                                  'ATTRIBUTES' => array( 'type' => 'string' ), 
),
+
         'subtitle'      => array( '#'          => 'string' ),
 
         'REQUIRED'      => array( 'id', 'title', 'updated' ),
@@ -94,6 +96,7 @@
         $this->xml->formatOutput = 1;
         $this->createRootElement( '2.0' );
         $this->generateRequired();
+        $this->generateOptional();
 
         return $this->xml->saveXML();
     }
@@ -142,6 +145,33 @@
                 }
                 $this->generateNode( $this->channel, $element, $dataNode );
 
+            }
+        }
+    }
+
+    /**
+     * Adds the optional feed elements to the XML document being generated.
+     *
+     * @ignore
+     */
+    protected function generateOptional()
+    {
+        foreach ( $this->schema->getOptional() as $element )
+        {
+            $data = $this->schema->isMulti( $element ) ? $this->get( 
$this->schema->getMulti( $element ) ) : $this->get( $element );
+
+            if ( !is_null( $data ) )
+            {
+                if ( !is_array( $data ) )
+                {
+                    $data = array( $data );
+                }
+
+                foreach ( $data as $dataNode )
+                {
+                    $this->generateNode( $this->channel, $element, $dataNode );
+
+                }
             }
         }
     }

Added: trunk/Feed/tests/atom/regression/generate/optional/rights/rights_empty.in
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/optional/rights/rights_empty.in 
(added)
+++ trunk/Feed/tests/atom/regression/generate/optional/rights/rights_empty.in 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,7 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title',
+                                       'type' => '' ) ),
+              'updated' => 'Feed updated',
+              'copyright' => array( array() ) );
+?>

Added: 
trunk/Feed/tests/atom/regression/generate/optional/rights/rights_empty.out
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/optional/rights/rights_empty.out 
(added)
+++ trunk/Feed/tests/atom/regression/generate/optional/rights/rights_empty.out 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,7 @@
+<?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>
+  <rights></rights>
+</feed>

Added: trunk/Feed/tests/atom/regression/generate/optional/rights/rights_html.in
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/optional/rights/rights_html.in 
(added)
+++ trunk/Feed/tests/atom/regression/generate/optional/rights/rights_html.in 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,7 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title' ) ),
+              'updated' => 'Feed updated',
+              'copyright' => array( array( '#' => 'Feed copyright',
+                                           'type' => 'html' ) ) );
+?>

Added: trunk/Feed/tests/atom/regression/generate/optional/rights/rights_html.out
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/optional/rights/rights_html.out 
(added)
+++ trunk/Feed/tests/atom/regression/generate/optional/rights/rights_html.out 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,7 @@
+<?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>
+  <rights type="html">Feed copyright</rights>
+</feed>

Added: 
trunk/Feed/tests/atom/regression/generate/optional/rights/rights_no_type.in
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/optional/rights/rights_no_type.in 
(added)
+++ trunk/Feed/tests/atom/regression/generate/optional/rights/rights_no_type.in 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,7 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title',
+                                       'type' => '' ) ),
+              'updated' => 'Feed updated',
+              'copyright' => array( array( '#' => 'Feed copyright' ) ) );
+?>

Added: 
trunk/Feed/tests/atom/regression/generate/optional/rights/rights_no_type.out
==============================================================================
--- 
trunk/Feed/tests/atom/regression/generate/optional/rights/rights_no_type.out 
(added)
+++ 
trunk/Feed/tests/atom/regression/generate/optional/rights/rights_no_type.out 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,7 @@
+<?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>
+  <rights>Feed copyright</rights>
+</feed>

Added: trunk/Feed/tests/atom/regression/generate/optional/rights/rights_text.in
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/optional/rights/rights_text.in 
(added)
+++ trunk/Feed/tests/atom/regression/generate/optional/rights/rights_text.in 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,7 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title' ) ),
+              'updated' => 'Feed updated',
+              'copyright' => array( array( '#' => 'Feed copyright',
+                                           'type' => 'text' ) ) );
+?>

Added: trunk/Feed/tests/atom/regression/generate/optional/rights/rights_text.out
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/optional/rights/rights_text.out 
(added)
+++ trunk/Feed/tests/atom/regression/generate/optional/rights/rights_text.out 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,7 @@
+<?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>
+  <rights type="text">Feed copyright</rights>
+</feed>

Added: trunk/Feed/tests/atom/regression/generate/optional/rights/rights_xhtml.in
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/optional/rights/rights_xhtml.in 
(added)
+++ trunk/Feed/tests/atom/regression/generate/optional/rights/rights_xhtml.in 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,7 @@
+<?php
+return array( 'id' => 'Feed id',
+              'title' => array( array( '#' => 'Feed title' ) ),
+              'updated' => 'Feed updated',
+              'copyright' => array( array( '#' => 'Feed copyright',
+                                           'type' => 'xhtml' ) ) );
+?>

Added: 
trunk/Feed/tests/atom/regression/generate/optional/rights/rights_xhtml.out
==============================================================================
--- trunk/Feed/tests/atom/regression/generate/optional/rights/rights_xhtml.out 
(added)
+++ trunk/Feed/tests/atom/regression/generate/optional/rights/rights_xhtml.out 
[iso-8859-1] Fri Nov  9 16:03:46 2007
@@ -1,0 +1,9 @@
+<?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>
+  <rights type="xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml";>
+    <xhtml:div>Feed copyright</xhtml:div>
+  </rights>
+</feed>


-- 
svn-components mailing list
[EMAIL PROTECTED]
http://lists.ez.no/mailman/listinfo/svn-components

Reply via email to