Chris@0
|
1 <?php
|
Chris@0
|
2 /**
|
Chris@0
|
3 * Zend Framework (http://framework.zend.com/)
|
Chris@0
|
4 *
|
Chris@0
|
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
|
Chris@0
|
6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
|
Chris@0
|
7 * @license http://framework.zend.com/license/new-bsd New BSD License
|
Chris@0
|
8 */
|
Chris@0
|
9
|
Chris@0
|
10 namespace Zend\Feed\Writer\Extension;
|
Chris@0
|
11
|
Chris@0
|
12 use DOMDocument;
|
Chris@0
|
13 use DOMElement;
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 */
|
Chris@0
|
17 abstract class AbstractRenderer implements RendererInterface
|
Chris@0
|
18 {
|
Chris@0
|
19 /**
|
Chris@0
|
20 * @var DOMDocument
|
Chris@0
|
21 */
|
Chris@0
|
22 protected $dom = null;
|
Chris@0
|
23
|
Chris@0
|
24 /**
|
Chris@0
|
25 * @var mixed
|
Chris@0
|
26 */
|
Chris@0
|
27 protected $entry = null;
|
Chris@0
|
28
|
Chris@0
|
29 /**
|
Chris@0
|
30 * @var DOMElement
|
Chris@0
|
31 */
|
Chris@0
|
32 protected $base = null;
|
Chris@0
|
33
|
Chris@0
|
34 /**
|
Chris@0
|
35 * @var mixed
|
Chris@0
|
36 */
|
Chris@0
|
37 protected $container = null;
|
Chris@0
|
38
|
Chris@0
|
39 /**
|
Chris@0
|
40 * @var string
|
Chris@0
|
41 */
|
Chris@0
|
42 protected $type = null;
|
Chris@0
|
43
|
Chris@0
|
44 /**
|
Chris@0
|
45 * @var DOMElement
|
Chris@0
|
46 */
|
Chris@0
|
47 protected $rootElement = null;
|
Chris@0
|
48
|
Chris@0
|
49 /**
|
Chris@0
|
50 * Encoding of all text values
|
Chris@0
|
51 *
|
Chris@0
|
52 * @var string
|
Chris@0
|
53 */
|
Chris@0
|
54 protected $encoding = 'UTF-8';
|
Chris@0
|
55
|
Chris@0
|
56 /**
|
Chris@0
|
57 * Set the data container
|
Chris@0
|
58 *
|
Chris@0
|
59 * @param mixed $container
|
Chris@0
|
60 * @return AbstractRenderer
|
Chris@0
|
61 */
|
Chris@0
|
62 public function setDataContainer($container)
|
Chris@0
|
63 {
|
Chris@0
|
64 $this->container = $container;
|
Chris@0
|
65 return $this;
|
Chris@0
|
66 }
|
Chris@0
|
67
|
Chris@0
|
68 /**
|
Chris@0
|
69 * Set feed encoding
|
Chris@0
|
70 *
|
Chris@0
|
71 * @param string $enc
|
Chris@0
|
72 * @return AbstractRenderer
|
Chris@0
|
73 */
|
Chris@0
|
74 public function setEncoding($enc)
|
Chris@0
|
75 {
|
Chris@0
|
76 $this->encoding = $enc;
|
Chris@0
|
77 return $this;
|
Chris@0
|
78 }
|
Chris@0
|
79
|
Chris@0
|
80 /**
|
Chris@0
|
81 * Get feed encoding
|
Chris@0
|
82 *
|
Chris@0
|
83 * @return string
|
Chris@0
|
84 */
|
Chris@0
|
85 public function getEncoding()
|
Chris@0
|
86 {
|
Chris@0
|
87 return $this->encoding;
|
Chris@0
|
88 }
|
Chris@0
|
89
|
Chris@0
|
90 /**
|
Chris@0
|
91 * Set DOMDocument and DOMElement on which to operate
|
Chris@0
|
92 *
|
Chris@0
|
93 * @param DOMDocument $dom
|
Chris@0
|
94 * @param DOMElement $base
|
Chris@0
|
95 * @return AbstractRenderer
|
Chris@0
|
96 */
|
Chris@0
|
97 public function setDomDocument(DOMDocument $dom, DOMElement $base)
|
Chris@0
|
98 {
|
Chris@0
|
99 $this->dom = $dom;
|
Chris@0
|
100 $this->base = $base;
|
Chris@0
|
101 return $this;
|
Chris@0
|
102 }
|
Chris@0
|
103
|
Chris@0
|
104 /**
|
Chris@0
|
105 * Get data container being rendered
|
Chris@0
|
106 *
|
Chris@0
|
107 * @return mixed
|
Chris@0
|
108 */
|
Chris@0
|
109 public function getDataContainer()
|
Chris@0
|
110 {
|
Chris@0
|
111 return $this->container;
|
Chris@0
|
112 }
|
Chris@0
|
113
|
Chris@0
|
114 /**
|
Chris@0
|
115 * Set feed type
|
Chris@0
|
116 *
|
Chris@0
|
117 * @param string $type
|
Chris@0
|
118 * @return AbstractRenderer
|
Chris@0
|
119 */
|
Chris@0
|
120 public function setType($type)
|
Chris@0
|
121 {
|
Chris@0
|
122 $this->type = $type;
|
Chris@0
|
123 return $this;
|
Chris@0
|
124 }
|
Chris@0
|
125
|
Chris@0
|
126 /**
|
Chris@0
|
127 * Get feedtype
|
Chris@0
|
128 *
|
Chris@0
|
129 * @return string
|
Chris@0
|
130 */
|
Chris@0
|
131 public function getType()
|
Chris@0
|
132 {
|
Chris@0
|
133 return $this->type;
|
Chris@0
|
134 }
|
Chris@0
|
135
|
Chris@0
|
136 /**
|
Chris@0
|
137 * Set root element of document
|
Chris@0
|
138 *
|
Chris@0
|
139 * @param DOMElement $root
|
Chris@0
|
140 * @return AbstractRenderer
|
Chris@0
|
141 */
|
Chris@0
|
142 public function setRootElement(DOMElement $root)
|
Chris@0
|
143 {
|
Chris@0
|
144 $this->rootElement = $root;
|
Chris@0
|
145 return $this;
|
Chris@0
|
146 }
|
Chris@0
|
147
|
Chris@0
|
148 /**
|
Chris@0
|
149 * Get root element
|
Chris@0
|
150 *
|
Chris@0
|
151 * @return DOMElement
|
Chris@0
|
152 */
|
Chris@0
|
153 public function getRootElement()
|
Chris@0
|
154 {
|
Chris@0
|
155 return $this->rootElement;
|
Chris@0
|
156 }
|
Chris@0
|
157
|
Chris@0
|
158 /**
|
Chris@0
|
159 * Append namespaces to feed
|
Chris@0
|
160 *
|
Chris@0
|
161 * @return void
|
Chris@0
|
162 */
|
Chris@12
|
163 // @codingStandardsIgnoreStart
|
Chris@0
|
164 abstract protected function _appendNamespaces();
|
Chris@12
|
165 // @codingStandardsIgnoreEnd
|
Chris@0
|
166 }
|