9d3e07c3b2aad5e2fd7c6491a80c607ead22bba8
[yaffs-website] / vendor / zendframework / zend-feed / src / Writer / Extension / Slash / 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\Slash\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->_setCommentCount($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:slash',
56             'http://purl.org/rss/1.0/modules/slash/'
57         );
58     }
59
60     /**
61      * Set entry comment count
62      *
63      * @param  DOMDocument $dom
64      * @param  DOMElement $root
65      * @return void
66      */
67     // @codingStandardsIgnoreStart
68     protected function _setCommentCount(DOMDocument $dom, DOMElement $root)
69     {
70         // @codingStandardsIgnoreEnd
71         $count = $this->getDataContainer()->getCommentCount();
72         if (! $count) {
73             $count = 0;
74         }
75         $tcount = $this->dom->createElement('slash:comments');
76         $tcount->nodeValue = $count;
77         $root->appendChild($tcount);
78         $this->called = true;
79     }
80 }