1: <?php
2: /**
3: * SimplePie
4: *
5: * A PHP-Based RSS and Atom Feed Framework.
6: * Takes the hard work out of managing a complete RSS/Atom solution.
7: *
8: * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
9: * All rights reserved.
10: *
11: * Redistribution and use in source and binary forms, with or without modification, are
12: * permitted provided that the following conditions are met:
13: *
14: * * Redistributions of source code must retain the above copyright notice, this list of
15: * conditions and the following disclaimer.
16: *
17: * * Redistributions in binary form must reproduce the above copyright notice, this list
18: * of conditions and the following disclaimer in the documentation and/or other materials
19: * provided with the distribution.
20: *
21: * * Neither the name of the SimplePie Team nor the names of its contributors may be used
22: * to endorse or promote products derived from this software without specific prior
23: * written permission.
24: *
25: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
26: * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
27: * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
28: * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30: * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
32: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33: * POSSIBILITY OF SUCH DAMAGE.
34: *
35: * @package SimplePie
36: * @version 1.3
37: * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
38: * @author Ryan Parman
39: * @author Geoffrey Sneddon
40: * @author Ryan McCue
41: * @link http://simplepie.org/ SimplePie
42: * @license http://www.opensource.org/licenses/bsd-license.php BSD License
43: */
44:
45:
46: /**
47: * Handles `<media:text>` captions as defined in Media RSS.
48: *
49: * Used by {@see SimplePie_Enclosure::get_caption()} and {@see SimplePie_Enclosure::get_captions()}
50: *
51: * This class can be overloaded with {@see SimplePie::set_caption_class()}
52: *
53: * @package SimplePie
54: * @subpackage API
55: */
56: class SimplePie_Caption
57: {
58: /**
59: * Content type
60: *
61: * @var string
62: * @see get_type()
63: */
64: var $type;
65:
66: /**
67: * Language
68: *
69: * @var string
70: * @see get_language()
71: */
72: var $lang;
73:
74: /**
75: * Start time
76: *
77: * @var string
78: * @see get_starttime()
79: */
80: var $startTime;
81:
82: /**
83: * End time
84: *
85: * @var string
86: * @see get_endtime()
87: */
88: var $endTime;
89:
90: /**
91: * Caption text
92: *
93: * @var string
94: * @see get_text()
95: */
96: var $text;
97:
98: /**
99: * Constructor, used to input the data
100: *
101: * For documentation on all the parameters, see the corresponding
102: * properties and their accessors
103: */
104: public function __construct($type = null, $lang = null, $startTime = null, $endTime = null, $text = null)
105: {
106: $this->type = $type;
107: $this->lang = $lang;
108: $this->startTime = $startTime;
109: $this->endTime = $endTime;
110: $this->text = $text;
111: }
112:
113: /**
114: * String-ified version
115: *
116: * @return string
117: */
118: public function __toString()
119: {
120: // There is no $this->data here
121: return md5(serialize($this));
122: }
123:
124: /**
125: * Get the end time
126: *
127: * @return string|null Time in the format 'hh:mm:ss.SSS'
128: */
129: public function get_endtime()
130: {
131: if ($this->endTime !== null)
132: {
133: return $this->endTime;
134: }
135: else
136: {
137: return null;
138: }
139: }
140:
141: /**
142: * Get the language
143: *
144: * @link http://tools.ietf.org/html/rfc3066
145: * @return string|null Language code as per RFC 3066
146: */
147: public function get_language()
148: {
149: if ($this->lang !== null)
150: {
151: return $this->lang;
152: }
153: else
154: {
155: return null;
156: }
157: }
158:
159: /**
160: * Get the start time
161: *
162: * @return string|null Time in the format 'hh:mm:ss.SSS'
163: */
164: public function get_starttime()
165: {
166: if ($this->startTime !== null)
167: {
168: return $this->startTime;
169: }
170: else
171: {
172: return null;
173: }
174: }
175:
176: /**
177: * Get the text of the caption
178: *
179: * @return string|null
180: */
181: public function get_text()
182: {
183: if ($this->text !== null)
184: {
185: return $this->text;
186: }
187: else
188: {
189: return null;
190: }
191: }
192:
193: /**
194: * Get the content type (not MIME type)
195: *
196: * @return string|null Either 'text' or 'html'
197: */
198: public function get_type()
199: {
200: if ($this->type !== null)
201: {
202: return $this->type;
203: }
204: else
205: {
206: return null;
207: }
208: }
209: }
210:
211: