Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / zendframework / zend-feed / src / Writer / Extension / WellFormedWeb / Renderer / Entry.php
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\Extension\WellFormedWeb\Renderer;
11
12 use DOMDocument;
13 use DOMElement;
14 use Zend\Feed\Writer\Extension;
15
16 /**
17 */
18 class Entry extends Extension\AbstractRenderer
19 {
20     /**
21      * Set to TRUE if a rendering method actually renders something. This
22      * is used to prevent premature appending of a XML namespace declaration
23      * until an element which requires it is actually appended.
24      *
25      * @var bool
26      */
27     protected $called = false;
28
29     /**
30      * Render entry
31      *
32      * @return void
33      */
34     public function render()
35     {
36         if (strtolower($this->getType()) == 'atom') {
37             return; // RSS 2.0 only
38         }
39         $this->_setCommentFeedLinks($this->dom, $this->base);
40         if ($this->called) {
41             $this->_appendNamespaces();
42         }
43     }
44
45     /**
46      * Append entry namespaces
47      *
48      * @return void
49      */
50     // @codingStandardsIgnoreStart
51     protected function _appendNamespaces()
52     {
53         // @codingStandardsIgnoreEnd
54         $this->getRootElement()->setAttribute(
55             'xmlns:wfw',
56             'http://wellformedweb.org/CommentAPI/'
57         );
58     }
59
60     /**
61      * Set entry comment feed links
62      *
63      * @param  DOMDocument $dom
64      * @param  DOMElement $root
65      * @return void
66      */
67     // @codingStandardsIgnoreStart
68     protected function _setCommentFeedLinks(DOMDocument $dom, DOMElement $root)
69     {
70         // @codingStandardsIgnoreEnd
71         $links = $this->getDataContainer()->getCommentFeedLinks();
72         if (! $links || empty($links)) {
73             return;
74         }
75         foreach ($links as $link) {
76             if ($link['type'] == 'rss') {
77                 $flink = $this->dom->createElement('wfw:commentRss');
78                 $text = $dom->createTextNode($link['uri']);
79                 $flink->appendChild($text);
80                 $root->appendChild($flink);
81             }
82         }
83         $this->called = true;
84     }
85 }