Mercurial > hg > cmmr2012-drupal-site
comparison vendor/zendframework/zend-feed/src/Writer/Renderer/Feed/AtomSource.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | 5311817fb629 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c75dbcec494b |
---|---|
1 <?php | |
2 /** | |
3 * Zend Framework (http://framework.zend.com/) | |
4 * | |
5 * @link http://github.com/zendframework/zf2 for the canonical source repository | |
6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) | |
7 * @license http://framework.zend.com/license/new-bsd New BSD License | |
8 */ | |
9 | |
10 namespace Zend\Feed\Writer\Renderer\Feed; | |
11 | |
12 use DOMDocument; | |
13 use DOMElement; | |
14 use Zend\Feed\Writer; | |
15 use Zend\Feed\Writer\Renderer; | |
16 | |
17 /** | |
18 */ | |
19 class AtomSource extends AbstractAtom implements Renderer\RendererInterface | |
20 { | |
21 /** | |
22 * Constructor | |
23 * | |
24 * @param Writer\Source $container | |
25 */ | |
26 public function __construct(Writer\Source $container) | |
27 { | |
28 parent::__construct($container); | |
29 } | |
30 | |
31 /** | |
32 * Render Atom Feed Metadata (Source element) | |
33 * | |
34 * @return \Zend\Feed\Writer\Renderer\Feed\Atom | |
35 */ | |
36 public function render() | |
37 { | |
38 if (!$this->container->getEncoding()) { | |
39 $this->container->setEncoding('UTF-8'); | |
40 } | |
41 $this->dom = new DOMDocument('1.0', $this->container->getEncoding()); | |
42 $this->dom->formatOutput = true; | |
43 $root = $this->dom->createElement('source'); | |
44 $this->setRootElement($root); | |
45 $this->dom->appendChild($root); | |
46 $this->_setLanguage($this->dom, $root); | |
47 $this->_setBaseUrl($this->dom, $root); | |
48 $this->_setTitle($this->dom, $root); | |
49 $this->_setDescription($this->dom, $root); | |
50 $this->_setDateCreated($this->dom, $root); | |
51 $this->_setDateModified($this->dom, $root); | |
52 $this->_setGenerator($this->dom, $root); | |
53 $this->_setLink($this->dom, $root); | |
54 $this->_setFeedLinks($this->dom, $root); | |
55 $this->_setId($this->dom, $root); | |
56 $this->_setAuthors($this->dom, $root); | |
57 $this->_setCopyright($this->dom, $root); | |
58 $this->_setCategories($this->dom, $root); | |
59 | |
60 foreach ($this->extensions as $ext) { | |
61 $ext->setType($this->getType()); | |
62 $ext->setRootElement($this->getRootElement()); | |
63 $ext->setDOMDocument($this->getDOMDocument(), $root); | |
64 $ext->render(); | |
65 } | |
66 return $this; | |
67 } | |
68 | |
69 /** | |
70 * Set feed generator string | |
71 * | |
72 * @param DOMDocument $dom | |
73 * @param DOMElement $root | |
74 * @return void | |
75 */ | |
76 protected function _setGenerator(DOMDocument $dom, DOMElement $root) | |
77 { | |
78 if (!$this->getDataContainer()->getGenerator()) { | |
79 return; | |
80 } | |
81 | |
82 $gdata = $this->getDataContainer()->getGenerator(); | |
83 $generator = $dom->createElement('generator'); | |
84 $root->appendChild($generator); | |
85 $text = $dom->createTextNode($gdata['name']); | |
86 $generator->appendChild($text); | |
87 if (array_key_exists('uri', $gdata)) { | |
88 $generator->setAttribute('uri', $gdata['uri']); | |
89 } | |
90 if (array_key_exists('version', $gdata)) { | |
91 $generator->setAttribute('version', $gdata['version']); | |
92 } | |
93 } | |
94 } |