Просмотр исходного кода

Zend_Feed_Writer: Fixed two bugs.
1. Remove atom namespaced generator element in Atom source element unless explicitly set (was defaulting to ZF in error)
2. If no Atom content is set (but a summary/description is) skip rendering a content element (would be empty)


git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@20321 44c647ce-9c0f-0410-b52a-842ac1e357ba

padraic 16 лет назад
Родитель
Сommit
79a15ff16e

+ 4 - 0
library/Zend/Feed/Writer/Renderer/Entry/Atom.php

@@ -316,6 +316,9 @@ class Zend_Feed_Writer_Renderer_Entry_Atom
                 return;
             }
         }
+        if (!$content) {
+            return;
+        }
         $element = $dom->createElement('content');
         $element->setAttribute('type', 'html');
         $cdata = $dom->createCDATASection($content);
@@ -365,6 +368,7 @@ class Zend_Feed_Writer_Renderer_Entry_Atom
             return;
         }
         $renderer = new Zend_Feed_Writer_Renderer_Feed_Atom_Source($source);
+        $renderer->setType($this->getType());
         $element = $renderer->render()->getElement();
         $imported = $dom->importNode($element, true);
         $root->appendChild($imported); 

+ 26 - 0
library/Zend/Feed/Writer/Renderer/Feed/Atom/Source.php

@@ -80,5 +80,31 @@ class Zend_Feed_Writer_Renderer_Feed_Atom_Source
         }
         return $this;
     }
+    
+    /**
+     * Set feed generator string
+     * 
+     * @param  DOMDocument $dom 
+     * @param  DOMElement $root 
+     * @return void
+     */
+    protected function _setGenerator(DOMDocument $dom, DOMElement $root)
+    {
+        if(!$this->getDataContainer()->getGenerator()) {
+            return;
+        }
+
+        $gdata = $this->getDataContainer()->getGenerator();
+        $generator = $dom->createElement('generator');
+        $root->appendChild($generator);
+        $text = $dom->createTextNode($gdata['name']);
+        $generator->appendChild($text);
+        if (array_key_exists('uri', $gdata)) {
+            $generator->setAttribute('uri', $gdata['uri']);
+        }
+        if (array_key_exists('version', $gdata)) {
+            $generator->setAttribute('version', $gdata['version']);
+        }
+    }
 
 }