diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-10-04 19:03:52 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-10-04 19:03:52 +0200 |
commit | eae7948b3d8033224d2fda9d2b7aa7df77a73cf6 (patch) | |
tree | 9ed4628e9925f2dfd358886d2973c96e37713908 /3rdparty/ZendFeed/Writer/Extension/DublinCore/Renderer/Feed.php | |
parent | 0125079c0250ae8d450e14995f419ad14df3e422 (diff) |
add zend feed 3rdparty component
Diffstat (limited to '3rdparty/ZendFeed/Writer/Extension/DublinCore/Renderer/Feed.php')
-rw-r--r-- | 3rdparty/ZendFeed/Writer/Extension/DublinCore/Renderer/Feed.php | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/3rdparty/ZendFeed/Writer/Extension/DublinCore/Renderer/Feed.php b/3rdparty/ZendFeed/Writer/Extension/DublinCore/Renderer/Feed.php new file mode 100644 index 000000000..e888fbd07 --- /dev/null +++ b/3rdparty/ZendFeed/Writer/Extension/DublinCore/Renderer/Feed.php @@ -0,0 +1,80 @@ +<?php +/** + * Zend Framework (http://framework.zend.com/) + * + * @link http://github.com/zendframework/zf2 for the canonical source repository + * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ + +namespace Zend\Feed\Writer\Extension\DublinCore\Renderer; + +use DOMDocument; +use DOMElement; +use Zend\Feed\Writer\Extension; + +/** +*/ +class Feed extends Extension\AbstractRenderer +{ + + /** + * Set to TRUE if a rendering method actually renders something. This + * is used to prevent premature appending of a XML namespace declaration + * until an element which requires it is actually appended. + * + * @var bool + */ + protected $called = false; + + /** + * Render feed + * + * @return void + */ + public function render() + { + if (strtolower($this->getType()) == 'atom') { + return; + } + $this->_setAuthors($this->dom, $this->base); + if ($this->called) { + $this->_appendNamespaces(); + } + } + + /** + * Append namespaces to feed element + * + * @return void + */ + protected function _appendNamespaces() + { + $this->getRootElement()->setAttribute('xmlns:dc', + 'http://purl.org/dc/elements/1.1/'); + } + + /** + * Set feed authors + * + * @param DOMDocument $dom + * @param DOMElement $root + * @return void + */ + protected function _setAuthors(DOMDocument $dom, DOMElement $root) + { + $authors = $this->getDataContainer()->getAuthors(); + if (!$authors || empty($authors)) { + return; + } + foreach ($authors as $data) { + $author = $this->dom->createElement('dc:creator'); + if (array_key_exists('name', $data)) { + $text = $dom->createTextNode($data['name']); + $author->appendChild($text); + $root->appendChild($author); + } + } + $this->called = true; + } +} |