[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * Zend Framework 5 * 6 * LICENSE 7 * 8 * This source file is subject to the new BSD license that is bundled 9 * with this package in the file LICENSE.txt. 10 * It is also available through the world-wide-web at this URL: 11 * http://framework.zend.com/license/new-bsd 12 * If you did not receive a copy of the license and are unable to 13 * obtain it through the world-wide-web, please send an email 14 * to [email protected] so we can send you a copy immediately. 15 * 16 * @category Zend 17 * @package Zend_Gdata 18 * @subpackage YouTube 19 * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) 20 * @license http://framework.zend.com/license/new-bsd New BSD License 21 * @version $Id$ 22 */ 23 24 /** 25 * @see Zend_Gdata_Entry 26 */ 27 require_once 'Zend/Gdata/Entry.php'; 28 29 /** 30 * @see Zend_Gdata_Extension_FeedLink 31 */ 32 require_once 'Zend/Gdata/Extension/FeedLink.php'; 33 34 /** 35 * @see Zend_Gdata_YouTube_Extension_Description 36 */ 37 require_once 'Zend/Gdata/YouTube/Extension/Description.php'; 38 39 /** 40 * @see Zend_Gdata_YouTube_Extension_PlaylistTitle 41 */ 42 require_once 'Zend/Gdata/YouTube/Extension/PlaylistTitle.php'; 43 44 /** 45 * @see Zend_Gdata_YouTube_Extension_PlaylistId 46 */ 47 require_once 'Zend/Gdata/YouTube/Extension/PlaylistId.php'; 48 49 /** 50 * @see Zend_Gdata_Media_Extension_MediaThumbnail 51 */ 52 require_once 'Zend/Gdata/Media/Extension/MediaThumbnail.php'; 53 54 /** 55 * @see Zend_Gdata_YouTube_Extension_Username 56 */ 57 require_once 'Zend/Gdata/YouTube/Extension/Username.php'; 58 59 /** 60 * @see Zend_Gdata_YouTube_Extension_CountHint 61 */ 62 require_once 'Zend/Gdata/YouTube/Extension/CountHint.php'; 63 64 /** 65 * @see Zend_Gdata_YouTube_Extension_QueryString 66 */ 67 require_once 'Zend/Gdata/YouTube/Extension/QueryString.php'; 68 69 /** 70 * Represents the YouTube video subscription flavor of an Atom entry 71 * 72 * @category Zend 73 * @package Zend_Gdata 74 * @subpackage YouTube 75 * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) 76 * @license http://framework.zend.com/license/new-bsd New BSD License 77 */ 78 class Zend_Gdata_YouTube_SubscriptionEntry extends Zend_Gdata_Entry 79 { 80 81 protected $_entryClassName = 'Zend_Gdata_YouTube_SubscriptionEntry'; 82 83 /** 84 * Nested feed links 85 * 86 * @var array 87 */ 88 protected $_feedLink = array(); 89 90 /** 91 * The username of this entry. 92 * 93 * @var Zend_Gdata_YouTube_Extension_Username 94 */ 95 protected $_username = null; 96 97 /** 98 * The playlist title for this entry. 99 * 100 * This element is only used on subscriptions to playlists. 101 * 102 * @var Zend_Gdata_YouTube_Extension_PlaylistTitle 103 */ 104 protected $_playlistTitle = null; 105 106 /** 107 * The playlist id for this entry. 108 * 109 * This element is only used on subscriptions to playlists. 110 * 111 * @var Zend_Gdata_YouTube_Extension_PlaylistId 112 */ 113 protected $_playlistId = null; 114 115 /** 116 * The media:thumbnail element for this entry. 117 * 118 * This element is only used on subscriptions to playlists. 119 * 120 * @var Zend_Gdata_Media_Extension_MediaThumbnail 121 */ 122 protected $_mediaThumbnail = null; 123 124 /** 125 * The countHint for this entry. 126 * 127 * @var Zend_Gdata_YouTube_Extension_CountHint 128 */ 129 protected $_countHint = null; 130 131 /** 132 * The queryString for this entry. 133 * 134 * @var Zend_Gdata_YouTube_Extension_QueryString 135 */ 136 protected $_queryString = null; 137 138 /** 139 * Creates a subscription entry, representing an individual subscription 140 * in a list of subscriptions, usually associated with an individual user. 141 * 142 * @param DOMElement $element (optional) DOMElement from which this 143 * object should be constructed. 144 */ 145 public function __construct($element = null) 146 { 147 $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); 148 parent::__construct($element); 149 } 150 151 /** 152 * Retrieves a DOMElement which corresponds to this element and all 153 * child properties. This is used to build an entry back into a DOM 154 * and eventually XML text for sending to the server upon updates, or 155 * for application storage/persistence. 156 * 157 * @param DOMDocument $doc The DOMDocument used to construct DOMElements 158 * @return DOMElement The DOMElement representing this element and all 159 * child properties. 160 */ 161 public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) 162 { 163 $element = parent::getDOM($doc, $majorVersion, $minorVersion); 164 if ($this->_countHint != null) { 165 $element->appendChild($this->_countHint->getDOM($element->ownerDocument)); 166 } 167 if ($this->_playlistTitle != null) { 168 $element->appendChild($this->_playlistTitle->getDOM($element->ownerDocument)); 169 } 170 if ($this->_playlistId != null) { 171 $element->appendChild($this->_playlistId->getDOM($element->ownerDocument)); 172 } 173 if ($this->_mediaThumbnail != null) { 174 $element->appendChild($this->_mediaThumbnail->getDOM($element->ownerDocument)); 175 } 176 if ($this->_username != null) { 177 $element->appendChild($this->_username->getDOM($element->ownerDocument)); 178 } 179 if ($this->_queryString != null) { 180 $element->appendChild($this->_queryString->getDOM($element->ownerDocument)); 181 } 182 if ($this->_feedLink != null) { 183 foreach ($this->_feedLink as $feedLink) { 184 $element->appendChild($feedLink->getDOM($element->ownerDocument)); 185 } 186 } 187 return $element; 188 } 189 190 /** 191 * Creates individual Entry objects of the appropriate type and 192 * stores them in the $_entry array based upon DOM data. 193 * 194 * @param DOMNode $child The DOMNode to process 195 */ 196 protected function takeChildFromDOM($child) 197 { 198 $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; 199 switch ($absoluteNodeName) { 200 case $this->lookupNamespace('gd') . ':' . 'feedLink': 201 $feedLink = new Zend_Gdata_Extension_FeedLink(); 202 $feedLink->transferFromDOM($child); 203 $this->_feedLink[] = $feedLink; 204 break; 205 case $this->lookupNamespace('media') . ':' . 'thumbnail': 206 $mediaThumbnail = new Zend_Gdata_Media_Extension_MediaThumbnail(); 207 $mediaThumbnail->transferFromDOM($child); 208 $this->_mediaThumbnail = $mediaThumbnail; 209 break; 210 case $this->lookupNamespace('yt') . ':' . 'countHint': 211 $countHint = new Zend_Gdata_YouTube_Extension_CountHint(); 212 $countHint->transferFromDOM($child); 213 $this->_countHint = $countHint; 214 break; 215 case $this->lookupNamespace('yt') . ':' . 'playlistTitle': 216 $playlistTitle = new Zend_Gdata_YouTube_Extension_PlaylistTitle(); 217 $playlistTitle->transferFromDOM($child); 218 $this->_playlistTitle = $playlistTitle; 219 break; 220 case $this->lookupNamespace('yt') . ':' . 'playlistId': 221 $playlistId = new Zend_Gdata_YouTube_Extension_PlaylistId(); 222 $playlistId->transferFromDOM($child); 223 $this->_playlistId = $playlistId; 224 break; 225 case $this->lookupNamespace('yt') . ':' . 'queryString': 226 $queryString = new Zend_Gdata_YouTube_Extension_QueryString(); 227 $queryString->transferFromDOM($child); 228 $this->_queryString = $queryString; 229 break; 230 case $this->lookupNamespace('yt') . ':' . 'username': 231 $username = new Zend_Gdata_YouTube_Extension_Username(); 232 $username->transferFromDOM($child); 233 $this->_username = $username; 234 break; 235 default: 236 parent::takeChildFromDOM($child); 237 break; 238 } 239 } 240 241 /** 242 * Sets the array of embedded feeds related to the video 243 * 244 * @param array $feedLink The array of embedded feeds relating to the video 245 * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface 246 */ 247 public function setFeedLink($feedLink = null) 248 { 249 $this->_feedLink = $feedLink; 250 return $this; 251 } 252 253 /** 254 * Get the feed link property for this entry. 255 * 256 * @see setFeedLink 257 * @param string $rel (optional) The rel value of the link to be found. 258 * If null, the array of links is returned. 259 * @return mixed If $rel is specified, a Zend_Gdata_Extension_FeedLink 260 * object corresponding to the requested rel value is returned 261 * if found, or null if the requested value is not found. If 262 * $rel is null or not specified, an array of all available 263 * feed links for this entry is returned, or null if no feed 264 * links are set. 265 */ 266 public function getFeedLink($rel = null) 267 { 268 if ($rel == null) { 269 return $this->_feedLink; 270 } else { 271 foreach ($this->_feedLink as $feedLink) { 272 if ($feedLink->rel == $rel) { 273 return $feedLink; 274 } 275 } 276 return null; 277 } 278 } 279 280 /** 281 * Get the playlist title for a 'playlist' subscription. 282 * 283 * @throws Zend_Gdata_App_VersionException 284 * @return Zend_Gdata_YouTube_Extension_PlaylistId 285 */ 286 public function getPlaylistId() 287 { 288 if (($this->getMajorProtocolVersion() == null) || 289 ($this->getMajorProtocolVersion() == 1)) { 290 require_once 'Zend/Gdata/App/VersionException.php'; 291 throw new Zend_Gdata_App_VersionException('The getPlaylistId ' . 292 ' method is only supported as of version 2 of the YouTube ' . 293 'API.'); 294 } else { 295 return $this->_playlistId; 296 } 297 } 298 299 /** 300 * Sets the yt:playlistId element for a new playlist subscription. 301 * 302 * @param Zend_Gdata_YouTube_Extension_PlaylistId $id The id of 303 * the playlist to which to subscribe to. 304 * @throws Zend_Gdata_App_VersionException 305 * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface 306 */ 307 public function setPlaylistId($id = null) 308 { 309 if (($this->getMajorProtocolVersion() == null) || 310 ($this->getMajorProtocolVersion() == 1)) { 311 require_once 'Zend/Gdata/App/VersionException.php'; 312 throw new Zend_Gdata_App_VersionException('The setPlaylistTitle ' . 313 ' method is only supported as of version 2 of the YouTube ' . 314 'API.'); 315 } else { 316 $this->_playlistId = $id; 317 return $this; 318 } 319 } 320 321 /** 322 * Get the queryString of the subscription 323 * 324 * @return Zend_Gdata_YouTube_Extension_QueryString 325 */ 326 public function getQueryString() 327 { 328 return $this->_queryString; 329 } 330 331 /** 332 * Sets the yt:queryString element for a new keyword subscription. 333 * 334 * @param Zend_Gdata_YouTube_Extension_QueryString $queryString The query 335 * string to subscribe to 336 * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface 337 */ 338 public function setQueryString($queryString = null) 339 { 340 $this->_queryString = $queryString; 341 return $this; 342 } 343 344 /** 345 * Get the playlist title for a 'playlist' subscription. 346 * 347 * @throws Zend_Gdata_App_VersionException 348 * @return Zend_Gdata_YouTube_Extension_PlaylistTitle 349 */ 350 public function getPlaylistTitle() 351 { 352 if (($this->getMajorProtocolVersion() == null) || 353 ($this->getMajorProtocolVersion() == 1)) { 354 require_once 'Zend/Gdata/App/VersionException.php'; 355 throw new Zend_Gdata_App_VersionException('The getPlaylistTitle ' . 356 ' method is only supported as of version 2 of the YouTube ' . 357 'API.'); 358 } else { 359 return $this->_playlistTitle; 360 } 361 } 362 363 /** 364 * Sets the yt:playlistTitle element for a new playlist subscription. 365 * 366 * @param Zend_Gdata_YouTube_Extension_PlaylistTitle $title The title of 367 * the playlist to which to subscribe to. 368 * @throws Zend_Gdata_App_VersionException 369 * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface 370 */ 371 public function setPlaylistTitle($title = null) 372 { 373 if (($this->getMajorProtocolVersion() == null) || 374 ($this->getMajorProtocolVersion() == 1)) { 375 require_once 'Zend/Gdata/App/VersionException.php'; 376 throw new Zend_Gdata_App_VersionException('The setPlaylistTitle ' . 377 ' method is only supported as of version 2 of the YouTube ' . 378 'API.'); 379 } else { 380 $this->_playlistTitle = $title; 381 return $this; 382 } 383 } 384 385 /** 386 * Get the counthint for a subscription. 387 * 388 * @throws Zend_Gdata_App_VersionException 389 * @return Zend_Gdata_YouTube_Extension_CountHint 390 */ 391 public function getCountHint() 392 { 393 if (($this->getMajorProtocolVersion() == null) || 394 ($this->getMajorProtocolVersion() == 1)) { 395 require_once 'Zend/Gdata/App/VersionException.php'; 396 throw new Zend_Gdata_App_VersionException('The getCountHint ' . 397 ' method is only supported as of version 2 of the YouTube ' . 398 'API.'); 399 } else { 400 return $this->_countHint; 401 } 402 } 403 404 /** 405 * Get the thumbnail for a subscription. 406 * 407 * @throws Zend_Gdata_App_VersionException 408 * @return Zend_Gdata_Media_Extension_MediaThumbnail 409 */ 410 public function getMediaThumbnail() 411 { 412 if (($this->getMajorProtocolVersion() == null) || 413 ($this->getMajorProtocolVersion() == 1)) { 414 require_once 'Zend/Gdata/App/VersionException.php'; 415 throw new Zend_Gdata_App_VersionException('The getMediaThumbnail ' . 416 ' method is only supported as of version 2 of the YouTube ' . 417 'API.'); 418 } else { 419 return $this->_mediaThumbnail; 420 } 421 } 422 423 /** 424 * Get the username for a channel subscription. 425 * 426 * @return Zend_Gdata_YouTube_Extension_Username 427 */ 428 public function getUsername() 429 { 430 return $this->_username; 431 } 432 433 /** 434 * Sets the username for a new channel subscription. 435 * 436 * @param Zend_Gdata_YouTube_Extension_Username $username The username of 437 * the channel to which to subscribe to. 438 * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface 439 */ 440 public function setUsername($username = null) 441 { 442 $this->_username = $username; 443 return $this; 444 } 445 446 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |