diff options
| author | Horus3 | 2014-02-24 16:42:14 +0100 |
|---|---|---|
| committer | Horus3 | 2014-02-24 16:42:14 +0100 |
| commit | 06f945f27840b53e57795dadbc38e76f7e11ab1c (patch) | |
| tree | 689d5c7f4ffa15460c7e90f47c6a7dd59ce4e8bd /zend/library/Zend/Gdata/YouTube | |
| download | random-06f945f27840b53e57795dadbc38e76f7e11ab1c.tar.gz | |
init
Diffstat (limited to 'zend/library/Zend/Gdata/YouTube')
59 files changed, 8314 insertions, 0 deletions
diff --git a/zend/library/Zend/Gdata/YouTube/ActivityEntry.php b/zend/library/Zend/Gdata/YouTube/ActivityEntry.php new file mode 100644 index 0000000..3c60e1b --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/ActivityEntry.php @@ -0,0 +1,232 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage Health + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: ActivityEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Entry + */ +require_once 'Zend/Gdata/Entry.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_VideoId + */ +require_once 'Zend/Gdata/YouTube/Extension/VideoId.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Username + */ +require_once 'Zend/Gdata/YouTube/Extension/Username.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Rating + */ +require_once 'Zend/Gdata/Extension/Rating.php'; + +/** + * A concrete class for working with YouTube user activity entries. + * + * @link http://code.google.com/apis/youtube/ + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_ActivityEntry extends Zend_Gdata_Entry +{ + const ACTIVITY_CATEGORY_SCHEME = + 'http://gdata.youtube.com/schemas/2007/userevents.cat'; + + /** + * The classname for individual user activity entry elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_ActivityEntry'; + + /** + * The ID of the video that was part of the activity + * + * @var Zend_Gdata_YouTube_VideoId + */ + protected $_videoId = null; + + /** + * The username for the user that was part of the activity + * + * @var Zend_Gdata_YouTube_Username + */ + protected $_username = null; + + /** + * The rating element that was part of the activity + * + * @var Zend_Gdata_Extension_Rating + */ + protected $_rating = null; + + /** + * Constructs a new Zend_Gdata_YouTube_ActivityEntry object. + * @param DOMElement $element (optional) The DOMElement on which to + * base this object. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_videoId !== null) { + $element->appendChild($this->_videoId->getDOM( + $element->ownerDocument)); + } + if ($this->_username !== null) { + $element->appendChild($this->_username->getDOM( + $element->ownerDocument)); + } + if ($this->_rating !== null) { + $element->appendChild($this->_rating->getDOM( + $element->ownerDocument)); + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them as members of this entry based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('yt') . ':' . 'videoid': + $videoId = new Zend_Gdata_YouTube_Extension_VideoId(); + $videoId->transferFromDOM($child); + $this->_videoId = $videoId; + break; + case $this->lookupNamespace('yt') . ':' . 'username': + $username = new Zend_Gdata_YouTube_Extension_Username(); + $username->transferFromDOM($child); + $this->_username = $username; + break; + case $this->lookupNamespace('gd') . ':' . 'rating': + $rating = new Zend_Gdata_Extension_Rating(); + $rating->transferFromDOM($child); + $this->_rating = $rating; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Returns the video ID for this activity entry. + * + * @return null|Zend_Gdata_YouTube_Extension_VideoId + */ + public function getVideoId() + { + return $this->_videoId; + } + + /** + * Returns the username for this activity entry. + * + * @return null|Zend_Gdata_YouTube_Extension_Username + */ + public function getUsername() + { + return $this->_username; + } + + /** + * Returns the rating for this activity entry. + * + * @return null|Zend_Gdata_YouTube_Extension_Rating + */ + public function getRating() + { + return $this->_rating; + } + + /** + * Return the value of the rating for this video entry. + * + * Convenience method to save needless typing. + * + * @return integer|null The value of the rating that was created, if found. + */ + public function getRatingValue() + { + $rating = $this->_rating; + if ($rating) { + return $rating->getValue(); + } + return null; + } + + /** + * Return the activity type that was performed. + * + * Convenience method that inspects category where scheme is + * http://gdata.youtube.com/schemas/2007/userevents.cat. + * + * @return string|null The activity category if found. + */ + public function getActivityType() + { + $categories = $this->getCategory(); + foreach($categories as $category) { + if ($category->getScheme() == self::ACTIVITY_CATEGORY_SCHEME) { + return $category->getTerm(); + } + } + return null; + } + + /** + * Convenience method to quickly get access to the author of the activity + * + * @return string The author of the activity + */ + public function getAuthorName() + { + $authors = $this->getAuthor(); + return $authors[0]->getName()->getText(); + } +} diff --git a/zend/library/Zend/Gdata/YouTube/ActivityFeed.php b/zend/library/Zend/Gdata/YouTube/ActivityFeed.php new file mode 100644 index 0000000..6389c30 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/ActivityFeed.php @@ -0,0 +1,66 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: ActivityFeed.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Feed + */ +require_once 'Zend/Gdata/Feed.php'; + +/** + * @see Zend_Gdata_YouTube_ActivityEntry + */ +require_once 'Zend/Gdata/YouTube/ActivityEntry.php'; + +/** + * A feed of user activity entries for YouTube + * + * @link http://code.google.com/apis/youtube/ + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_ActivityFeed extends Zend_Gdata_Feed +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_ActivityEntry'; + + /** + * Creates an Activity feed, representing a list of activity entries + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/CommentEntry.php b/zend/library/Zend/Gdata/YouTube/CommentEntry.php new file mode 100644 index 0000000..c16effa --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/CommentEntry.php @@ -0,0 +1,59 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: CommentEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Feed + */ +require_once 'Zend/Gdata/Media/Feed.php'; + +/** + * The YouTube comments flavor of an Atom Entry + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_CommentEntry extends Zend_Gdata_Entry +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_CommentEntry'; + + /** + * Constructs a new Zend_Gdata_YouTube_CommentEntry object. + * @param DOMElement $element (optional) The DOMElement on which to + * base this object. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/CommentFeed.php b/zend/library/Zend/Gdata/YouTube/CommentFeed.php new file mode 100644 index 0000000..aede378 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/CommentFeed.php @@ -0,0 +1,66 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: CommentFeed.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_feed + */ +require_once 'Zend/Gdata/Feed.php'; + +/** + * @see Zend_Gdata_YouTube_CommentEntry + */ +require_once 'Zend/Gdata/YouTube/CommentEntry.php'; + +/** + * The YouTube comments flavor of an Atom Feed + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_CommentFeed extends Zend_Gdata_Feed +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_CommentEntry'; + + /** + * Constructs a new YouTube Comment Feed object, to represent + * a feed of comments for an individual video + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/ContactEntry.php b/zend/library/Zend/Gdata/YouTube/ContactEntry.php new file mode 100644 index 0000000..50503bf --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/ContactEntry.php @@ -0,0 +1,136 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: ContactEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_YouTube_UserProfileEntry + */ +require_once 'Zend/Gdata/YouTube/UserProfileEntry.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Status + */ +require_once 'Zend/Gdata/YouTube/Extension/Status.php'; + +/** + * The YouTube contacts flavor of an Atom Entry with media support + * Represents a an individual contact + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_ContactEntry extends Zend_Gdata_YouTube_UserProfileEntry +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_ContactEntry'; + + /** + * Status of the user as a contact + * + * @var string + */ + protected $_status = null; + + /** + * Constructs a new Contact Entry object, to represent + * an individual contact for a user + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_status != null) { + $element->appendChild($this->_status->getDOM($element->ownerDocument)); + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them in the $_entry array based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('yt') . ':' . 'status': + $status = new Zend_Gdata_YouTube_Extension_Status(); + $status->transferFromDOM($child); + $this->_status = $status; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Sets the status + * + * @param Zend_Gdata_YouTube_Extension_Status $status The status + * @return Zend_Gdata_YouTube_ContactEntry Provides a fluent interface + */ + public function setStatus($status = null) + { + $this->_status = $status; + return $this; + } + + /** + * Returns the status + * + * @return Zend_Gdata_YouTube_Extension_Status The status + */ + public function getStatus() + { + return $this->_status; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/ContactFeed.php b/zend/library/Zend/Gdata/YouTube/ContactFeed.php new file mode 100644 index 0000000..a072b08 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/ContactFeed.php @@ -0,0 +1,68 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: ContactFeed.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Feed + */ +require_once 'Zend/Gdata/Media/Feed.php'; + +/** + * @see Zend_Gdata_YouTube_ContactEntry + */ +require_once 'Zend/Gdata/YouTube/ContactEntry.php'; + +/** + * The YouTube contacts flavor of an Atom Feed with media support + * Represents a list of individual contacts, where each contained entry is + * a contact. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_ContactFeed extends Zend_Gdata_Media_Feed +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_ContactEntry'; + + /** + * Constructs a new YouTube Contact Feed object, to represent + * a feed of contacts for a user + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/AboutMe.php b/zend/library/Zend/Gdata/YouTube/Extension/AboutMe.php new file mode 100644 index 0000000..9828fa5 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/AboutMe.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: AboutMe.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:aboutMe element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_AboutMe extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'aboutMe'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Age.php b/zend/library/Zend/Gdata/YouTube/Extension/Age.php new file mode 100644 index 0000000..2cea5a9 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Age.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Age.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:age element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Age extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'age'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Books.php b/zend/library/Zend/Gdata/YouTube/Extension/Books.php new file mode 100644 index 0000000..d62466f --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Books.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Books.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:books element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Books extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'books'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Company.php b/zend/library/Zend/Gdata/YouTube/Extension/Company.php new file mode 100644 index 0000000..a333e28 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Company.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Company.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:company element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Company extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'company'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Control.php b/zend/library/Zend/Gdata/YouTube/Extension/Control.php new file mode 100755 index 0000000..338544b --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Control.php @@ -0,0 +1,133 @@ +<?php +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Control.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_App_Extension_Control + */ +require_once 'Zend/Gdata/App/Extension/Control.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_State + */ +require_once 'Zend/Gdata/YouTube/Extension/State.php'; + + +/** + * Specialized Control class for use with YouTube. Enables use of yt extension elements. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Control extends Zend_Gdata_App_Extension_Control +{ + + protected $_state = null; + + /** + * Constructs a new Zend_Gdata_Calendar_Extension_Control object. + * @see Zend_Gdata_App_Extension_Control#__construct + * @param Zend_Gdata_App_Extension_Draft $draft + * @param Zend_Gdata_YouTube_Extension_State $state + */ + public function __construct($draft = null, $state = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($draft); + $this->_state = $state; + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_state != null) { + $element->appendChild($this->_state->getDOM($element->ownerDocument)); + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them as members of this entry based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('yt') . ':' . 'state': + $state = new Zend_Gdata_YouTube_Extension_State(); + $state->transferFromDOM($child); + $this->_state = $state; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Get the value for this element's state attribute. + * + * @return Zend_Gdata_YouTube_Extension_State The state element. + */ + public function getState() + { + return $this->_state; + } + + /** + * Set the value for this element's state attribute. + * + * @param Zend_Gdata_YouTube_Extension_State $value The desired value for this attribute. + * @return Zend_YouTube_Extension_Control The element being modified. + */ + public function setState($value) + { + $this->_state = $value; + return $this; + } + + /** + * Get the value of this element's state attribute. + * + * @return string The state's text value + */ + public function getStateValue() + { + return $this->getState()->getText(); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/CountHint.php b/zend/library/Zend/Gdata/YouTube/Extension/CountHint.php new file mode 100755 index 0000000..98fa6e2 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/CountHint.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: CountHint.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:countHint element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_CountHint extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'countHint'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Description.php b/zend/library/Zend/Gdata/YouTube/Extension/Description.php new file mode 100644 index 0000000..81b2b81 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Description.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Description.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:description element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Description extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'description'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Duration.php b/zend/library/Zend/Gdata/YouTube/Extension/Duration.php new file mode 100644 index 0000000..ae12087 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Duration.php @@ -0,0 +1,126 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Duration.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:duration element used by the YouTube data API + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Duration extends Zend_Gdata_Extension +{ + + protected $_rootNamespace = 'yt'; + protected $_rootElement = 'duration'; + protected $_seconds = null; + + /** + * Constructs a new Zend_Gdata_YouTube_Extension_Duration object. + * @param bool $seconds(optional) The seconds value of the element. + */ + public function __construct($seconds = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_seconds = $seconds; + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_seconds !== null) { + $element->setAttribute('seconds', $this->_seconds); + } + return $element; + } + + /** + * Given a DOMNode representing an attribute, tries to map the data into + * instance members. If no mapping is defined, the name and valueare + * stored in an array. + * + * @param DOMNode $attribute The DOMNode attribute needed to be handled + */ + protected function takeAttributeFromDOM($attribute) + { + switch ($attribute->localName) { + case 'seconds': + $this->_seconds = $attribute->nodeValue; + break; + default: + parent::takeAttributeFromDOM($attribute); + } + } + + /** + * Get the value for this element's seconds attribute. + * + * @return int The value associated with this attribute. + */ + public function getSeconds() + { + return $this->_seconds; + } + + /** + * Set the value for this element's seconds attribute. + * + * @param int $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_Duration The element being modified. + */ + public function setSeconds($value) + { + $this->_seconds = $value; + return $this; + } + + /** + * Magic toString method allows using this directly via echo + * Works best in PHP >= 4.2.0 + * + * @return string The duration in seconds + */ + public function __toString() + { + return $this->_seconds; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/FirstName.php b/zend/library/Zend/Gdata/YouTube/Extension/FirstName.php new file mode 100644 index 0000000..140816b --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/FirstName.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: FirstName.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:firstName element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_FirstName extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'firstName'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Gender.php b/zend/library/Zend/Gdata/YouTube/Extension/Gender.php new file mode 100644 index 0000000..98560a4 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Gender.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Gender.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:gender element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Gender extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'gender'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Hobbies.php b/zend/library/Zend/Gdata/YouTube/Extension/Hobbies.php new file mode 100644 index 0000000..e8b905d --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Hobbies.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Hobbies.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:hobbies element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Hobbies extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'hobbies'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Hometown.php b/zend/library/Zend/Gdata/YouTube/Extension/Hometown.php new file mode 100644 index 0000000..f65f508 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Hometown.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Hometown.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:hometown element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Hometown extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'hometown'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/LastName.php b/zend/library/Zend/Gdata/YouTube/Extension/LastName.php new file mode 100644 index 0000000..76b8c62 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/LastName.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: LastName.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:lastName element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_LastName extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'lastName'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Link.php b/zend/library/Zend/Gdata/YouTube/Extension/Link.php new file mode 100755 index 0000000..88cfa6b --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Link.php @@ -0,0 +1,133 @@ +<?php +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Link.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_App_Extension_Link + */ +require_once 'Zend/Gdata/App/Extension/Link.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Token + */ +require_once 'Zend/Gdata/YouTube/Extension/Token.php'; + + +/** + * Specialized Link class for use with YouTube. Enables use of yt extension elements. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Link extends Zend_Gdata_App_Extension_Link +{ + + protected $_token = null; + + /** + * Constructs a new Zend_Gdata_Calendar_Extension_Link object. + * @see Zend_Gdata_App_Extension_Link#__construct + * @param Zend_Gdata_YouTube_Extension_Token $token + */ + public function __construct($href = null, $rel = null, $type = null, + $hrefLang = null, $title = null, $length = null, $token = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($href, $rel, $type, $hrefLang, $title, $length); + $this->_token = $token; + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_token != null) { + $element->appendChild($this->_token->getDOM($element->ownerDocument)); + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them as members of this entry based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('yt') . ':' . 'token': + $token = new Zend_Gdata_YouTube_Extension_Token(); + $token->transferFromDOM($child); + $this->_token = $token; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Get the value for this element's token attribute. + * + * @return Zend_Gdata_YouTube_Extension_Token The token element. + */ + public function getToken() + { + return $this->_token; + } + + /** + * Set the value for this element's token attribute. + * + * @param Zend_Gdata_YouTube_Extension_Token $value The desired value for this attribute. + * @return Zend_YouTube_Extension_Link The element being modified. + */ + public function setToken($value) + { + $this->_token = $value; + return $this; + } + + /** + * Get the value of this element's token attribute. + * + * @return string The token's text value + */ + public function getTokenValue() + { + return $this->getToken()->getText(); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Location.php b/zend/library/Zend/Gdata/YouTube/Extension/Location.php new file mode 100644 index 0000000..7c5907b --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Location.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Location.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:location element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Location extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'location'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/MediaContent.php b/zend/library/Zend/Gdata/YouTube/Extension/MediaContent.php new file mode 100755 index 0000000..9cad525 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/MediaContent.php @@ -0,0 +1,120 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: MediaContent.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Extension_MediaContent + */ +require_once 'Zend/Gdata/Media/Extension/MediaContent.php'; + +/** + * Represents the media:content element of Media RSS. + * Represents media objects. Multiple media objects representing + * the same content can be represented using a + * media:group (Zend_Gdata_Media_Extension_MediaGroup) element. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_MediaContent extends Zend_Gdata_Media_Extension_MediaContent +{ + protected $_rootElement = 'content'; + protected $_rootNamespace = 'media'; + + /* + * Format of the video + * Optional. + * + * @var int + */ + protected $_format = null; + + + function __construct() { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_format!= null) { + $element->setAttributeNS($this->lookupNamespace('yt'), 'yt:format', $this->_format); + } + return $element; + } + + /** + * Given a DOMNode representing an attribute, tries to map the data into + * instance members. If no mapping is defined, the name and value are + * stored in an array. + * + * @param DOMNode $attribute The DOMNode attribute needed to be handled + */ + protected function takeAttributeFromDOM($attribute) + { + $absoluteAttrName = $attribute->namespaceURI . ':' . $attribute->localName; + if ($absoluteAttrName == $this->lookupNamespace('yt') . ':' . 'format') { + $this->_format = $attribute->nodeValue; + } else { + parent::takeAttributeFromDOM($attribute); + } + } + + /** + * Returns the format of the media + * Optional. + * + * @return int The format of the media + */ + public function getFormat() + { + return $this->_format; + } + + /** + * Sets the format of the media + * + * @param int $value Format of the media + * @return Zend_Gdata_YouTube_Extension_MediaContent Provides a fluent interface + * + */ + public function setFormat($value) + { + $this->_format = $value; + return $this; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/MediaCredit.php b/zend/library/Zend/Gdata/YouTube/Extension/MediaCredit.php new file mode 100644 index 0000000..b118475 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/MediaCredit.php @@ -0,0 +1,189 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage Media + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: MediaCredit.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_App_Extension + */ +require_once 'Zend/Gdata/App/Extension.php'; + +/** + * Represents the YouTube specific media:credit element + * + * @category Zend + * @package Zend_Gdata + * @subpackage Media + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_MediaCredit extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'credit'; + protected $_rootNamespace = 'media'; + + /** + * @var string + */ + protected $_role = null; + + /** + * @var string + */ + protected $_scheme = null; + + /** + * Represents the value of the yt:type attribute. + * + * Set to 'partner' if the uploader of this video is a YouTube + * partner. + * + * @var string + */ + protected $_yttype = null; + + /** + * Creates an individual MediaCredit object. + * + * @param string $text + * @param string $role + * @param string $scheme + */ + public function __construct($text = null, $role = null, $scheme = null, + $yttype = null) + { + $this->registerAllNamespaces(Zend_Gdata_Media::$namespaces); + parent::__construct(); + $this->_text = $text; + $this->_role = $role; + $this->_scheme = $scheme; + $this->_yttype = $yttype; + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_role !== null) { + $element->setAttribute('role', $this->_role); + } + if ($this->_scheme !== null) { + $element->setAttribute('scheme', $this->_scheme); + } + if ($this->_yttype !== null) { + $element->setAttributeNS('http://gdata.youtube.com/schemas/2007', + 'yt:type', $this->_yttype); + } + return $element; + } + + /** + * Given a DOMNode representing an attribute, tries to map the data into + * instance members. If no mapping is defined, the name and value are + * stored in an array. + * + * @param DOMNode $attribute The DOMNode attribute needed to be handled + */ + protected function takeAttributeFromDOM($attribute) + { + switch ($attribute->localName) { + case 'role': + $this->_role = $attribute->nodeValue; + break; + case 'scheme': + $this->_scheme = $attribute->nodeValue; + break; + case 'type': + $this->_yttype = $attribute->nodeValue; + break; + default: + parent::takeAttributeFromDOM($attribute); + } + } + + /** + * @return string + */ + public function getRole() + { + return $this->_role; + } + + /** + * @param string $value + * @return Zend_Gdata_Media_Extension_MediaCredit Provides a fluent + * interface + */ + public function setRole($value) + { + $this->_role = $value; + return $this; + } + + /** + * @return string + */ + public function getScheme() + { + return $this->_scheme; + } + + /** + * @param string $value + * @return Zend_Gdata_Media_Extension_MediaCredit Provides a fluent + * interface + */ + public function setScheme($value) + { + $this->_scheme = $value; + return $this; + } + + /** + * @return string + */ + public function getYTtype() + { + return $this->_yttype; + } + + /** + * @param string $value + * @return Zend_Gdata_Media_Extension_MediaCredit Provides a fluent + * interface + */ + public function setYTtype($value) + { + $this->_yttype = $value; + return $this; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/MediaGroup.php b/zend/library/Zend/Gdata/YouTube/Extension/MediaGroup.php new file mode 100755 index 0000000..14d70ed --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/MediaGroup.php @@ -0,0 +1,336 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: MediaGroup.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Extension_MediaGroup + */ +require_once 'Zend/Gdata/Media/Extension/MediaGroup.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_MediaContent + */ +require_once 'Zend/Gdata/YouTube/Extension/MediaContent.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Duration + */ +require_once 'Zend/Gdata/YouTube/Extension/Duration.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_MediaRating + */ +require_once 'Zend/Gdata/YouTube/Extension/MediaRating.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_MediaCredit + */ +require_once 'Zend/Gdata/YouTube/Extension/MediaCredit.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Private + */ +require_once 'Zend/Gdata/YouTube/Extension/Private.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_VideoId + */ +require_once 'Zend/Gdata/YouTube/Extension/VideoId.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Uploaded + */ +require_once 'Zend/Gdata/YouTube/Extension/Uploaded.php'; + +/** + * This class represents the media:group element of Media RSS. + * It allows the grouping of media:content elements that are + * different representations of the same content. When it exists, + * it is a child of an Entry (Atom) or Item (RSS). + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_MediaGroup extends Zend_Gdata_Media_Extension_MediaGroup +{ + + protected $_rootElement = 'group'; + protected $_rootNamespace = 'media'; + + /** + * @var Zend_Gdata_YouTube_Extension_Duration + */ + protected $_duration = null; + + /** + * @var Zend_Gdata_YouTube_Extension_Private + */ + protected $_private = null; + + /** + * @var Zend_Gdata_YouTube_Extension_VideoId + */ + protected $_videoid = null; + + /** + * @var Zend_Gdata_YouTube_Extension_MediaRating + */ + protected $_mediarating = null; + + /** + * @var Zend_Gdata_YouTube_Extension_MediaCredit + */ + protected $_mediacredit = null; + + /** + * @var Zend_Gdata_YouTube_Extension_Uploaded + */ + protected $_uploaded = null; + + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_duration !== null) { + $element->appendChild( + $this->_duration->getDOM($element->ownerDocument)); + } + if ($this->_private !== null) { + $element->appendChild( + $this->_private->getDOM($element->ownerDocument)); + } + if ($this->_videoid != null) { + $element->appendChild( + $this->_videoid->getDOM($element->ownerDocument)); + } + if ($this->_uploaded != null) { + $element->appendChild( + $this->_uploaded->getDOM($element->ownerDocument)); + } + if ($this->_mediacredit != null) { + $element->appendChild( + $this->_mediacredit->getDOM($element->ownerDocument)); + } + if ($this->_mediarating != null) { + $element->appendChild( + $this->_mediarating->getDOM($element->ownerDocument)); + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them in the $_entry array based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('media') . ':' . 'content': + $content = new Zend_Gdata_YouTube_Extension_MediaContent(); + $content->transferFromDOM($child); + $this->_content[] = $content; + break; + case $this->lookupNamespace('media') . ':' . 'rating': + $mediarating = new Zend_Gdata_YouTube_Extension_MediaRating(); + $mediarating->transferFromDOM($child); + $this->_mediarating = $mediarating; + break; + case $this->lookupNamespace('media') . ':' . 'credit': + $mediacredit = new Zend_Gdata_YouTube_Extension_MediaCredit(); + $mediacredit->transferFromDOM($child); + $this->_mediacredit = $mediacredit; + break; + case $this->lookupNamespace('yt') . ':' . 'duration': + $duration = new Zend_Gdata_YouTube_Extension_Duration(); + $duration->transferFromDOM($child); + $this->_duration = $duration; + break; + case $this->lookupNamespace('yt') . ':' . 'private': + $private = new Zend_Gdata_YouTube_Extension_Private(); + $private->transferFromDOM($child); + $this->_private = $private; + break; + case $this->lookupNamespace('yt') . ':' . 'videoid': + $videoid = new Zend_Gdata_YouTube_Extension_VideoId(); + $videoid ->transferFromDOM($child); + $this->_videoid = $videoid; + break; + case $this->lookupNamespace('yt') . ':' . 'uploaded': + $uploaded = new Zend_Gdata_YouTube_Extension_Uploaded(); + $uploaded ->transferFromDOM($child); + $this->_uploaded = $uploaded; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Returns the duration value of this element + * + * @return Zend_Gdata_YouTube_Extension_Duration + */ + public function getDuration() + { + return $this->_duration; + } + + /** + * Sets the duration value of this element + * + * @param Zend_Gdata_YouTube_Extension_Duration $value The duration value + * @return Zend_Gdata_YouTube_Extension_MediaGroup Provides a fluent + * interface + */ + public function setDuration($value) + { + $this->_duration = $value; + return $this; + } + + /** + * Returns the videoid value of this element + * + * @return Zend_Gdata_YouTube_Extension_VideoId + */ + public function getVideoId() + { + return $this->_videoid; + } + + /** + * Sets the videoid value of this element + * + * @param Zend_Gdata_YouTube_Extension_VideoId $value The video id value + * @return Zend_Gdata_YouTube_Extension_MediaGroup Provides a fluent + * interface + */ + public function setVideoId($value) + { + $this->_videoid = $value; + return $this; + } + + /** + * Returns the yt:uploaded element + * + * @return Zend_Gdata_YouTube_Extension_Uploaded + */ + public function getUploaded() + { + return $this->_uploaded; + } + + /** + * Sets the yt:uploaded element + * + * @param Zend_Gdata_YouTube_Extension_Uploaded $value The uploaded value + * @return Zend_Gdata_YouTube_Extension_MediaGroup Provides a fluent + * interface + */ + public function setUploaded($value) + { + $this->_uploaded = $value; + return $this; + } + + /** + * Returns the private value of this element + * + * @return Zend_Gdata_YouTube_Extension_Private + */ + public function getPrivate() + { + return $this->_private; + } + + /** + * Sets the private value of this element + * + * @param Zend_Gdata_YouTube_Extension_Private $value The private value + * @return Zend_Gdata_YouTube_Extension_MediaGroup Provides a fluent + * interface + */ + public function setPrivate($value) + { + $this->_private = $value; + return $this; + } + + /** + * Returns the rating value of this element + * + * @return Zend_Gdata_YouTube_Extension_MediaRating + */ + public function getMediaRating() + { + return $this->_mediarating; + } + + /** + * Sets the media:rating value of this element + * + * @param Zend_Gdata_YouTube_Extension_MediaRating $value The rating element + * @return Zend_Gdata_YouTube_Extension_MediaGroup Provides a fluent + * interface + */ + public function setMediaRating($value) + { + $this->_mediarating = $value; + return $this; + } + + /** + * Returns the media:credit value of this element + * + * @return Zend_Gdata_YouTube_Extension_MediaCredit + */ + public function getMediaCredit() + { + return $this->_mediacredit; + } + + /** + * Sets the media:credit value of this element + * + * @param Zend_Gdata_YouTube_Extension_MediaCredit $value The credit element + * @return Zend_Gdata_YouTube_Extension_MediaGroup Provides a fluent + * interface + */ + public function setMediaCredit($value) + { + $this->_mediacredit = $value; + return $this; + } +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/MediaRating.php b/zend/library/Zend/Gdata/YouTube/Extension/MediaRating.php new file mode 100755 index 0000000..7acb307 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/MediaRating.php @@ -0,0 +1,150 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage Media + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: MediaRating.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the media:rating element specific to YouTube. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_MediaRating extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'rating'; + protected $_rootNamespace = 'media'; + + /** + * @var string + */ + protected $_scheme = null; + + /** + * @var string + */ + protected $_country = null; + + /** + * Constructs a new MediaRating element + * + * @param string $text + * @param string $scheme + * @param string $country + */ + public function __construct($text = null, $scheme = null, $country = null) + { + $this->registerAllNamespaces(Zend_Gdata_Media::$namespaces); + parent::__construct(); + $this->_scheme = $scheme; + $this->_country = $country; + $this->_text = $text; + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_scheme !== null) { + $element->setAttribute('scheme', $this->_scheme); + } + if ($this->_country != null) { + $element->setAttribute('country', $this->_country); + } + return $element; + } + + /** + * Given a DOMNode representing an attribute, tries to map the data into + * instance members. If no mapping is defined, the name and value are + * stored in an array. + * + * @param DOMNode $attribute The DOMNode attribute needed to be handled + */ + protected function takeAttributeFromDOM($attribute) + { + switch ($attribute->localName) { + case 'scheme': + $this->_scheme = $attribute->nodeValue; + break; + case 'country': + $this->_country = $attribute->nodeValue; + break; + default: + parent::takeAttributeFromDOM($attribute); + } + } + + /** + * @return string + */ + public function getScheme() + { + return $this->_scheme; + } + + /** + * @param string $value + * @return Zend_Gdata_YouTube_Extension_MediaRating Provides a fluent interface + */ + public function setScheme($value) + { + $this->_scheme = $value; + return $this; + } + + /** + * @return string + */ + public function getCountry() + { + return $this->_country; + } + + /** + * @param string $value + * @return Zend_Gdata_YouTube_Extension_MediaRating Provides a fluent interface + */ + public function setCountry($value) + { + $this->_country = $value; + return $this; + } + + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Movies.php b/zend/library/Zend/Gdata/YouTube/Extension/Movies.php new file mode 100644 index 0000000..cbf73cf --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Movies.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Movies.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:movies element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Movies extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'movies'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Music.php b/zend/library/Zend/Gdata/YouTube/Extension/Music.php new file mode 100644 index 0000000..88eca9d --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Music.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Music.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:music element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Music extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'music'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/NoEmbed.php b/zend/library/Zend/Gdata/YouTube/Extension/NoEmbed.php new file mode 100644 index 0000000..e88f270 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/NoEmbed.php @@ -0,0 +1,54 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: NoEmbed.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:noembed element used by the YouTube data API + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_NoEmbed extends Zend_Gdata_Extension +{ + + protected $_rootNamespace = 'yt'; + protected $_rootElement = 'noembed'; + + /** + * Constructs a new Zend_Gdata_YouTube_Extension_VideoShare object. + * @param bool $enabled(optional) The enabled value of the element. + */ + public function __construct($enabled = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Occupation.php b/zend/library/Zend/Gdata/YouTube/Extension/Occupation.php new file mode 100644 index 0000000..f523c4a --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Occupation.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Occupation.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:occupation element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Occupation extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'occupation'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/PlaylistId.php b/zend/library/Zend/Gdata/YouTube/Extension/PlaylistId.php new file mode 100644 index 0000000..a8449a5 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/PlaylistId.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: PlaylistId.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:playlistId element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_PlaylistId extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'playlistId'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/PlaylistTitle.php b/zend/library/Zend/Gdata/YouTube/Extension/PlaylistTitle.php new file mode 100644 index 0000000..8e3263c --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/PlaylistTitle.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: PlaylistTitle.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:playlistTitle element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_PlaylistTitle extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'playlistTitle'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Position.php b/zend/library/Zend/Gdata/YouTube/Extension/Position.php new file mode 100644 index 0000000..95685f9 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Position.php @@ -0,0 +1,90 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Position.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Data model class to represent a playlist item's position in the list (yt:position) + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Position extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'position'; + protected $_rootNamespace = 'yt'; + + /** + * Constructs a new Zend_Gdata_YouTube_Extension_Position object. + * + * @param string $value (optional) The 1-based position in the playlist + */ + public function __construct($value = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $value; + } + + /** + * Get the value for the position in the playlist + * + * @return int The 1-based position in the playlist + */ + public function getValue() + { + return $this->_text; + } + + /** + * Set the value for the position in the playlist + * + * @param int $value The 1-based position in the playlist + * @return Zend_Gdata_Extension_Visibility The element being modified + */ + public function setValue($value) + { + $this->_text = $value; + return $this; + } + + /** + * Magic toString method allows using this directly via echo + * Works best in PHP >= 4.2.0 + * + * @return string + */ + public function __toString() + { + return $this->getValue(); + } + +} + diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Private.php b/zend/library/Zend/Gdata/YouTube/Extension/Private.php new file mode 100755 index 0000000..03d375b --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Private.php @@ -0,0 +1,81 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Private.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:private element used by the YouTube data API + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Private extends Zend_Gdata_Extension +{ + + protected $_rootNamespace = 'yt'; + protected $_rootElement = 'private'; + + /** + * Constructs a new Zend_Gdata_YouTube_Extension_Private object. + */ + public function __construct() + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + return $element; + } + + /** + * Given a DOMNode representing an attribute, tries to map the data into + * instance members. If no mapping is defined, the name and valueare + * stored in an array. + * + * @param DOMNode $attribute The DOMNode attribute needed to be handled + */ + protected function takeAttributeFromDOM($attribute) + { + parent::takeAttributeFromDOM($attribute); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/QueryString.php b/zend/library/Zend/Gdata/YouTube/Extension/QueryString.php new file mode 100644 index 0000000..55b69b1 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/QueryString.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: QueryString.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:queryString element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_QueryString extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'queryString'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Racy.php b/zend/library/Zend/Gdata/YouTube/Extension/Racy.php new file mode 100644 index 0000000..7aa3d92 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Racy.php @@ -0,0 +1,124 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Racy.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:racy element used by the YouTube data API + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Racy extends Zend_Gdata_Extension +{ + + protected $_rootNamespace = 'yt'; + protected $_rootElement = 'racy'; + protected $_state = null; + + /** + * Constructs a new Zend_Gdata_YouTube_Extension_Racy object. + * @param bool $state(optional) The state value of the element. + */ + public function __construct($state = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_state = $state; + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_state !== null) { + $element->setAttribute('state', $this->_state); + } + return $element; + } + + /** + * Given a DOMNode representing an attribute, tries to map the data into + * instance members. If no mapping is defined, the name and value are + * stored in an array. + * + * @param DOMNode $attribute The DOMNode attribute needed to be handled + */ + protected function takeAttributeFromDOM($attribute) + { + switch ($attribute->localName) { + case 'state': + $this->_state = $attribute->nodeValue; + break; + default: + parent::takeAttributeFromDOM($attribute); + } + } + + /** + * Get the value for this element's state attribute. + * + * @return bool The value associated with this attribute. + */ + public function getState() + { + return $this->_state; + } + + /** + * Set the value for this element's state attribute. + * + * @param bool $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_Racy The element being modified. + */ + public function setState($value) + { + $this->_state = $value; + return $this; + } + + /** + * Magic toString method allows using this directly via echo + * Works best in PHP >= 4.2.0 + */ + public function __toString() + { + return $this->_state; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Recorded.php b/zend/library/Zend/Gdata/YouTube/Extension/Recorded.php new file mode 100644 index 0000000..655a3de --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Recorded.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Recorded.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:recorded element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Recorded extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'recorded'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Relationship.php b/zend/library/Zend/Gdata/YouTube/Extension/Relationship.php new file mode 100644 index 0000000..563fdd6 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Relationship.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Relationship.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:relationship element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Relationship extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'relationship'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/ReleaseDate.php b/zend/library/Zend/Gdata/YouTube/Extension/ReleaseDate.php new file mode 100644 index 0000000..b4a5261 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/ReleaseDate.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: ReleaseDate.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:releaseDate element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_ReleaseDate extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'releaseDate'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/School.php b/zend/library/Zend/Gdata/YouTube/Extension/School.php new file mode 100644 index 0000000..912447f --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/School.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: School.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:school element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_School extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'school'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/State.php b/zend/library/Zend/Gdata/YouTube/Extension/State.php new file mode 100644 index 0000000..bdc8af0 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/State.php @@ -0,0 +1,193 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: State.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:state element used by the YouTube data API + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_State extends Zend_Gdata_Extension +{ + + protected $_rootNamespace = 'yt'; + protected $_rootElement = 'state'; + protected $_name = null; + protected $_reasonCode = null; + protected $_helpUrl = null; + + /** + * Constructs a new Zend_Gdata_YouTube_Extension_State object. + * + * @param string $explanation(optional) The explanation of this state + * @param string $name(optional) The name value + * @param string $reasonCode(optional) The reasonCode value + * @param string $helpUrl(optional) The helpUrl value + */ + public function __construct($explanation = null, $name = null, + $reasonCode = null, $helpUrl = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $explanation; + $this->_name = $name; + $this->_reasonCode = $reasonCode; + $this->_helpUrl = $reasonCode; + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_name !== null) { + $element->setAttribute('name', $this->_name); + } + if ($this->_reasonCode !== null) { + $element->setAttribute('reasonCode', $this->_reasonCode); + } + if ($this->_helpUrl !== null) { + $element->setAttribute('helpUrl', $this->_helpUrl); + } + return $element; + } + + /** + * Given a DOMNode representing an attribute, tries to map the data into + * instance members. If no mapping is defined, the name and valueare + * stored in an array. + * TODO: Convert attributes to proper types + * + * @param DOMNode $attribute The DOMNode attribute needed to be handled + */ + protected function takeAttributeFromDOM($attribute) + { + switch ($attribute->localName) { + case 'name': + $this->_name = $attribute->nodeValue; + break; + case 'reasonCode': + $this->_reasonCode = $attribute->nodeValue; + break; + case 'helpUrl': + $this->_helpUrl = $attribute->nodeValue; + break; + default: + parent::takeAttributeFromDOM($attribute); + } + } + + /** + * Get the value for this element's name attribute. + * + * @return int The value associated with this attribute. + */ + public function getName() + { + return $this->_name; + } + + /** + * Set the value for this element's name attribute. + * + * @param int $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_State The element being modified. + */ + public function setName($value) + { + $this->_name = $value; + return $this; + } + + /** + * Get the value for this element's reasonCode attribute. + * + * @return int The value associated with this attribute. + */ + public function getReasonCode() + { + return $this->_reasonCode; + } + + /** + * Set the value for this element's reasonCode attribute. + * + * @param int $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_State The element being modified. + */ + public function setReasonCode($value) + { + $this->_reasonCode = $value; + return $this; + } + + /** + * Get the value for this element's helpUrl attribute. + * + * @return int The value associated with this attribute. + */ + public function getHelpUrl() + { + return $this->_helpUrl; + } + + /** + * Set the value for this element's helpUrl attribute. + * + * @param int $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_State The element being modified. + */ + public function setHelpUrl($value) + { + $this->_helpUrl = $value; + return $this; + } + + /** + * Magic toString method allows using this directly via echo + * Works best in PHP >= 4.2.0 + * + * @return string + */ + public function __toString() + { + return $this->_text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Statistics.php b/zend/library/Zend/Gdata/YouTube/Extension/Statistics.php new file mode 100644 index 0000000..001c53d --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Statistics.php @@ -0,0 +1,309 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Statistics.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:statistics element used by the YouTube data API + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Statistics extends Zend_Gdata_Extension +{ + + protected $_rootNamespace = 'yt'; + protected $_rootElement = 'statistics'; + + /** + * The videoWatchCount attribute specifies the number of videos + * that a user has watched on YouTube. The videoWatchCount attribute + * is only specified when the <yt:statistics> tag appears within a + * user profile entry. + * + * @var integer + */ + protected $_videoWatchCount = null; + + /** + * When the viewCount attribute refers to a video entry, the attribute + * specifies the number of times that the video has been viewed. + * When the viewCount attribute refers to a user profile, the attribute + * specifies the number of times that the user's profile has been + * viewed. + * + * @var integer + */ + protected $_viewCount = null; + + /** + * The subscriberCount attribute specifies the number of YouTube users + * who have subscribed to a particular user's YouTube channel. + * The subscriberCount attribute is only specified when the + * <yt:statistics> tag appears within a user profile entry. + * + * @var integer + */ + protected $_subscriberCount = null; + + /** + * The lastWebAccess attribute indicates the most recent time that + * a particular user used YouTube. + * + * @var string + */ + protected $_lastWebAccess = null; + + /** + * The favoriteCount attribute specifies the number of YouTube users + * who have added a video to their list of favorite videos. The + * favoriteCount attribute is only specified when the + * <yt:statistics> tag appears within a video entry. + * + * @var integer + */ + protected $_favoriteCount = null; + + /** + * Constructs a new Zend_Gdata_YouTube_Extension_Statistics object. + * @param string $viewCount(optional) The viewCount value + * @param string $videoWatchCount(optional) The videoWatchCount value + * @param string $subscriberCount(optional) The subscriberCount value + * @param string $lastWebAccess(optional) The lastWebAccess value + * @param string $favoriteCount(optional) The favoriteCount value + */ + public function __construct($viewCount = null, $videoWatchCount = null, + $subscriberCount = null, $lastWebAccess = null, + $favoriteCount = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_viewCount = $viewCount; + $this->_videoWatchCount = $videoWatchCount; + $this->_subscriberCount = $subscriberCount; + $this->_lastWebAccess = $lastWebAccess; + $this->_favoriteCount = $favoriteCount; + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_videoWatchCount !== null) { + $element->setAttribute('watchCount', $this->_videoWatchCount); + } + if ($this->_viewCount !== null) { + $element->setAttribute('viewCount', $this->_viewCount); + } + if ($this->_subscriberCount !== null) { + $element->setAttribute('subscriberCount', + $this->_subscriberCount); + } + if ($this->_lastWebAccess !== null) { + $element->setAttribute('lastWebAccess', + $this->_lastWebAccess); + } + if ($this->_favoriteCount !== null) { + $element->setAttribute('favoriteCount', + $this->_favoriteCount); + } + return $element; + } + + /** + * Given a DOMNode representing an attribute, tries to map the data into + * instance members. If no mapping is defined, the name and valueare + * stored in an array. + * TODO: Convert attributes to proper types + * + * @param DOMNode $attribute The DOMNode attribute needed to be handled + */ + protected function takeAttributeFromDOM($attribute) + { + switch ($attribute->localName) { + case 'videoWatchCount': + $this->_videoWatchCount = $attribute->nodeValue; + break; + case 'viewCount': + $this->_viewCount = $attribute->nodeValue; + break; + case 'subscriberCount': + $this->_subscriberCount = $attribute->nodeValue; + break; + case 'lastWebAccess': + $this->_lastWebAccess = $attribute->nodeValue; + break; + case 'favoriteCount': + $this->_favoriteCount = $attribute->nodeValue; + break; + default: + parent::takeAttributeFromDOM($attribute); + } + } + + /** + * Get the value for this element's viewCount attribute. + * + * @return int The value associated with this attribute. + */ + public function getViewCount() + { + return $this->_viewCount; + } + + /** + * Set the value for this element's viewCount attribute. + * + * @param int $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_Statistics The element being + * modified. + */ + public function setViewCount($value) + { + $this->_viewCount = $value; + return $this; + } + + /** + * Get the value for this element's videoWatchCount attribute. + * + * @return int The value associated with this attribute. + */ + public function getVideoWatchCount() + { + return $this->_videoWatchCount; + } + + /** + * Set the value for this element's videoWatchCount attribute. + * + * @param int $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_Statistics The element being + * modified. + */ + public function setVideoWatchCount($value) + { + $this->_videoWatchCount = $value; + return $this; + } + + /** + * Get the value for this element's subscriberCount attribute. + * + * @return int The value associated with this attribute. + */ + public function getSubscriberCount() + { + return $this->_subscriberCount; + } + + /** + * Set the value for this element's subscriberCount attribute. + * + * @param int $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_Statistics The element being + * modified. + */ + public function setSubscriberCount($value) + { + $this->_subscriberCount = $value; + return $this; + } + + /** + * Get the value for this element's lastWebAccess attribute. + * + * @return int The value associated with this attribute. + */ + public function getLastWebAccess() + { + return $this->_lastWebAccess; + } + + /** + * Set the value for this element's lastWebAccess attribute. + * + * @param int $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_Statistics The element being + * modified. + */ + public function setLastWebAccess($value) + { + $this->_lastWebAccess = $value; + return $this; + } + + /** + * Get the value for this element's favoriteCount attribute. + * + * @return int The value associated with this attribute. + */ + public function getFavoriteCount() + { + return $this->_favoriteCount; + } + + /** + * Set the value for this element's favoriteCount attribute. + * + * @param int $value The desired value for this attribute. + * @return Zend_Gdata_YouTube_Extension_Statistics The element being + * modified. + */ + public function setFavoriteCount($value) + { + $this->_favoriteCount = $value; + return $this; + } + + /** + * Magic toString method allows using this directly via echo + * Works best in PHP >= 4.2.0 + * + * @return string + */ + public function __toString() + { + return 'View Count=' . $this->_viewCount . + ' VideoWatchCount=' . $this->_videoWatchCount . + ' SubscriberCount=' . $this->_subscriberCount . + ' LastWebAccess=' . $this->_lastWebAccess . + ' FavoriteCount=' . $this->_favoriteCount; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Status.php b/zend/library/Zend/Gdata/YouTube/Extension/Status.php new file mode 100644 index 0000000..ff25276 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Status.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Status.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:status element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Status extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'status'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Token.php b/zend/library/Zend/Gdata/YouTube/Extension/Token.php new file mode 100755 index 0000000..4ddf4b2 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Token.php @@ -0,0 +1,70 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Token.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:token element used by the YouTube data API + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Token extends Zend_Gdata_App_Extension +{ + + protected $_rootNamespace = 'yt'; + protected $_rootElement = 'token'; + + /** + * Constructs a new Zend_Gdata_YouTube_Extension_Token object. + */ + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + return $element; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Uploaded.php b/zend/library/Zend/Gdata/YouTube/Extension/Uploaded.php new file mode 100644 index 0000000..3a51a48 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Uploaded.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Uploaded.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:uploaded element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Uploaded extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'uploaded'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/Username.php b/zend/library/Zend/Gdata/YouTube/Extension/Username.php new file mode 100644 index 0000000..b489183 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/Username.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Username.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:username element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_Username extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'username'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/Extension/VideoId.php b/zend/library/Zend/Gdata/YouTube/Extension/VideoId.php new file mode 100644 index 0000000..81c3e31 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/Extension/VideoId.php @@ -0,0 +1,51 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: VideoId.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension + */ +require_once 'Zend/Gdata/Extension.php'; + +/** + * Represents the yt:videoid element + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_Extension_VideoId extends Zend_Gdata_Extension +{ + + protected $_rootElement = 'videoid'; + protected $_rootNamespace = 'yt'; + + public function __construct($text = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct(); + $this->_text = $text; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/InboxEntry.php b/zend/library/Zend/Gdata/YouTube/InboxEntry.php new file mode 100644 index 0000000..46a1d2f --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/InboxEntry.php @@ -0,0 +1,281 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: InboxEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Entry + */ +require_once 'Zend/Gdata/Media/Entry.php'; + +/** + * @see Zend_Gdata_Extension_Rating + */ +require_once 'Zend/Gdata/Extension/Rating.php'; + +/** + * @see Zend_Gdata_Extension_Comments + */ +require_once 'Zend/Gdata/Extension/Comments.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Statistics + */ +require_once 'Zend/Gdata/YouTube/Extension/Statistics.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Description + */ +require_once 'Zend/Gdata/YouTube/Extension/Description.php'; + + +/** + * Represents the YouTube message flavor of an Atom entry + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_InboxEntry extends Zend_Gdata_Media_Entry +{ + + protected $_entryClassName = 'Zend_Gdata_YouTube_InboxEntry'; + + /** + * The gd:comments element of this entry. + * + * @var Zend_Gdata_Extension_Comments + */ + protected $_comments = null; + + /** + * The gd:rating element of this entry. + * + * @var Zend_Gdata_Extension_Rating + */ + protected $_rating = null; + + /** + * The yt:statistics element of this entry. + * + * @var Zend_Gdata_YouTube_Extension_Statistics + */ + protected $_statistics = null; + + /** + * The yt:description element of this entry. + * + * @var Zend_Gdata_YouTube_Extension_Description + */ + protected $_description = null; + + /** + * Creates a subscription entry, representing an individual subscription + * in a list of subscriptions, usually associated with an individual user. + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_description != null) { + $element->appendChild( + $this->_description->getDOM($element->ownerDocument)); + } + if ($this->_rating != null) { + $element->appendChild( + $this->_rating->getDOM($element->ownerDocument)); + } + if ($this->_statistics != null) { + $element->appendChild( + $this->_statistics->getDOM($element->ownerDocument)); + } + if ($this->_comments != null) { + $element->appendChild( + $this->_comments->getDOM($element->ownerDocument)); + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them in the $_entry array based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('gd') . ':' . 'comments': + $comments = new Zend_Gdata_Extension_Comments(); + $comments->transferFromDOM($child); + $this->_comments = $comments; + break; + case $this->lookupNamespace('gd') . ':' . 'rating': + $rating = new Zend_Gdata_Extension_Rating(); + $rating->transferFromDOM($child); + $this->_rating = $rating; + break; + case $this->lookupNamespace('yt') . ':' . 'description': + $description = new Zend_Gdata_YouTube_Extension_Description(); + $description->transferFromDOM($child); + $this->_description = $description; + break; + case $this->lookupNamespace('yt') . ':' . 'statistics': + $statistics = new Zend_Gdata_YouTube_Extension_Statistics(); + $statistics->transferFromDOM($child); + $this->_statistics = $statistics; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Get the yt:description + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_Description|null + */ + public function getDescription() + { + if ($this->getMajorProtocolVersion() == 2) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getDescription ' . + ' method is only supported in version 1 of the YouTube ' . + 'API.'); + } else { + return $this->_description; + } + } + + /** + * Sets the yt:description element for a new inbox entry. + * + * @param Zend_Gdata_YouTube_Extension_Description $description The + * description. + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_InboxEntry Provides a fluent interface + */ + public function setDescription($description = null) + { + if ($this->getMajorProtocolVersion() == 2) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The setDescription ' . + ' method is only supported in version 1 of the YouTube ' . + 'API.'); + } else { + $this->_description = $description; + return $this; + } + } + + /** + * Get the gd:rating element for the inbox entry + * + * @return Zend_Gdata_Extension_Rating|null + */ + public function getRating() + { + return $this->_rating; + } + + /** + * Sets the gd:rating element for the inbox entry + * + * @param Zend_Gdata_Extension_Rating $rating The rating for the video in + * the message + * @return Zend_Gdata_YouTube_InboxEntry Provides a fluent interface + */ + public function setRating($rating = null) + { + $this->_rating = $rating; + return $this; + } + + /** + * Get the gd:comments element of the inbox entry. + * + * @return Zend_Gdata_Extension_Comments|null + */ + public function getComments() + { + return $this->_comments; + } + + /** + * Sets the gd:comments element for the inbox entry + * + * @param Zend_Gdata_Extension_Comments $comments The comments feed link + * @return Zend_Gdata_YouTube_InboxEntry Provides a fluent interface + */ + public function setComments($comments = null) + { + $this->_comments = $comments; + return $this; + } + + /** + * Get the yt:statistics element for the inbox entry + * + * @return Zend_Gdata_YouTube_Extension_Statistics|null + */ + public function getStatistics() + { + return $this->_statistics; + } + + /** + * Sets the yt:statistics element for the inbox entry + * + * @param Zend_Gdata_YouTube_Extension_Statistics $statistics The + * statistics element for the video in the message + * @return Zend_Gdata_YouTube_InboxEntry Provides a fluent interface + */ + public function setStatistics($statistics = null) + { + $this->_statistics = $statistics; + return $this; + } + + +} diff --git a/zend/library/Zend/Gdata/YouTube/InboxFeed.php b/zend/library/Zend/Gdata/YouTube/InboxFeed.php new file mode 100644 index 0000000..e30b343 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/InboxFeed.php @@ -0,0 +1,68 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: InboxFeed.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Feed + */ +require_once 'Zend/Gdata/Media/Feed.php'; + +/** + * @see Zend_Gdata_YouTube_InboxEntry + */ +require_once 'Zend/Gdata/YouTube/InboxEntry.php'; + +/** + * The YouTube inbox feed list flavor of an Atom Feed with media support + * Represents a list of individual inbox entries, where each contained entry is + * a message. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_InboxFeed extends Zend_Gdata_Media_Feed +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_InboxEntry'; + + /** + * Creates an Inbox feed, representing a list of messages, + * associated with an individual user. + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/MediaEntry.php b/zend/library/Zend/Gdata/YouTube/MediaEntry.php new file mode 100755 index 0000000..7356dd1 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/MediaEntry.php @@ -0,0 +1,81 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: MediaEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media + */ +require_once 'Zend/Gdata/Media.php'; + +/** + * @see Zend_Gdata_Media_Entry + */ +require_once 'Zend/Gdata/Media/Entry.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_MediaGroup + */ +require_once 'Zend/Gdata/YouTube/Extension/MediaGroup.php'; + +/** + * Represents the YouTube flavor of a Gdata Media Entry + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_MediaEntry extends Zend_Gdata_Media_Entry +{ + + protected $_entryClassName = 'Zend_Gdata_YouTube_MediaEntry'; + + /** + * media:group element + * + * @var Zend_Gdata_YouTube_Extension_MediaGroup + */ + protected $_mediaGroup = null; + + /** + * Creates individual Entry objects of the appropriate type and + * stores them as members of this entry based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('media') . ':' . 'group': + $mediaGroup = new Zend_Gdata_YouTube_Extension_MediaGroup(); + $mediaGroup->transferFromDOM($child); + $this->_mediaGroup = $mediaGroup; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/PlaylistListEntry.php b/zend/library/Zend/Gdata/YouTube/PlaylistListEntry.php new file mode 100644 index 0000000..1fc44f5 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/PlaylistListEntry.php @@ -0,0 +1,300 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: PlaylistListEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_YouTube + */ +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @see Zend_Gdata_Entry + */ +require_once 'Zend/Gdata/Entry.php'; + +/** + * @see Zend_Gdata_Extension_FeedLink + */ +require_once 'Zend/Gdata/Extension/FeedLink.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Description + */ +require_once 'Zend/Gdata/YouTube/Extension/Description.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_PlaylistId + */ +require_once 'Zend/Gdata/YouTube/Extension/PlaylistId.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_CountHint + */ +require_once 'Zend/Gdata/YouTube/Extension/CountHint.php'; + +/** + * Represents the YouTube video playlist flavor of an Atom entry + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_PlaylistListEntry extends Zend_Gdata_Entry +{ + + protected $_entryClassName = 'Zend_Gdata_YouTube_PlaylistListEntry'; + + /** + * Nested feed links + * + * @var array + */ + protected $_feedLink = array(); + + /** + * Description of this playlist + * + * @deprecated Deprecated as of version 2 of the YouTube API. + * @var Zend_Gdata_YouTube_Extension_Description + */ + protected $_description = null; + + /** + * Id of this playlist + * + * @var Zend_Gdata_YouTube_Extension_PlaylistId + */ + protected $_playlistId = null; + + /** + * CountHint for this playlist. + * + * @var Zend_Gdata_YouTube_Extension_CountHint + */ + protected $_countHint = null; + + /** + * Creates a Playlist list entry, representing an individual playlist + * in a list of playlists, usually associated with an individual user. + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_description != null) { + $element->appendChild($this->_description->getDOM($element->ownerDocument)); + } + if ($this->_countHint != null) { + $element->appendChild($this->_countHint->getDOM($element->ownerDocument)); + } + if ($this->_playlistId != null) { + $element->appendChild($this->_playlistId->getDOM($element->ownerDocument)); + } + if ($this->_feedLink != null) { + foreach ($this->_feedLink as $feedLink) { + $element->appendChild($feedLink->getDOM($element->ownerDocument)); + } + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them in the $_entry array based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('yt') . ':' . 'description': + $description = new Zend_Gdata_YouTube_Extension_Description(); + $description->transferFromDOM($child); + $this->_description = $description; + break; + case $this->lookupNamespace('yt') . ':' . 'countHint': + $countHint = new Zend_Gdata_YouTube_Extension_CountHint(); + $countHint->transferFromDOM($child); + $this->_countHint = $countHint; + break; + case $this->lookupNamespace('yt') . ':' . 'playlistId': + $playlistId = new Zend_Gdata_YouTube_Extension_PlaylistId(); + $playlistId->transferFromDOM($child); + $this->_playlistId = $playlistId; + break; + case $this->lookupNamespace('gd') . ':' . 'feedLink': + $feedLink = new Zend_Gdata_Extension_FeedLink(); + $feedLink->transferFromDOM($child); + $this->_feedLink[] = $feedLink; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Sets the description relating to the playlist. + * + * @deprecated Deprecated as of version 2 of the YouTube API. + * @param Zend_Gdata_YouTube_Extension_Description $description The description relating to the video + * @return Zend_Gdata_YouTube_PlaylistListEntry Provides a fluent interface + */ + public function setDescription($description = null) + { + if ($this->getMajorProtocolVersion() >= 2) { + $this->setSummary($description); + } else { + $this->_description = $description; + } + return $this; + } + + /** + * Returns the description relating to the video. + * + * @return Zend_Gdata_YouTube_Extension_Description The description + * relating to the video + */ + public function getDescription() + { + if ($this->getMajorProtocolVersion() >= 2) { + return $this->getSummary(); + } else { + return $this->_description; + } + } + + /** + * Returns the countHint relating to the playlist. + * + * The countHint is the number of videos on a playlist. + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_CountHint The count of videos on + * a playlist. + */ + public function getCountHint() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The yt:countHint ' . + 'element is not supported in versions earlier than 2.'); + } else { + return $this->_countHint; + } + } + + /** + * Returns the Id relating to the playlist. + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_PlaylistId The id of this playlist. + */ + public function getPlaylistId() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The yt:playlistId ' . + 'element is not supported in versions earlier than 2.'); + } else { + return $this->_playlistId; + } + } + + /** + * Sets the array of embedded feeds related to the playlist + * + * @param array $feedLink The array of embedded feeds relating to the video + * @return Zend_Gdata_YouTube_PlaylistListEntry Provides a fluent interface + */ + public function setFeedLink($feedLink = null) + { + $this->_feedLink = $feedLink; + return $this; + } + + /** + * Get the feed link property for this entry. + * + * @see setFeedLink + * @param string $rel (optional) The rel value of the link to be found. + * If null, the array of links is returned. + * @return mixed If $rel is specified, a Zend_Gdata_Extension_FeedLink + * object corresponding to the requested rel value is returned + * if found, or null if the requested value is not found. If + * $rel is null or not specified, an array of all available + * feed links for this entry is returned, or null if no feed + * links are set. + */ + public function getFeedLink($rel = null) + { + if ($rel == null) { + return $this->_feedLink; + } else { + foreach ($this->_feedLink as $feedLink) { + if ($feedLink->rel == $rel) { + return $feedLink; + } + } + return null; + } + } + + /** + * Returns the URL of the playlist video feed + * + * @return string The URL of the playlist video feed + */ + public function getPlaylistVideoFeedUrl() + { + if ($this->getMajorProtocolVersion() >= 2) { + return $this->getContent()->getSrc(); + } else { + return $this->getFeedLink(Zend_Gdata_YouTube::PLAYLIST_REL)->href; + } + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/PlaylistListFeed.php b/zend/library/Zend/Gdata/YouTube/PlaylistListFeed.php new file mode 100644 index 0000000..6fbe006 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/PlaylistListFeed.php @@ -0,0 +1,68 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: PlaylistListFeed.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Feed + */ +require_once 'Zend/Gdata/Media/Feed.php'; + +/** + * @see Zend_Gdata_YouTube_PlaylistListEntry + */ +require_once 'Zend/Gdata/YouTube/PlaylistListEntry.php'; + +/** + * The YouTube video playlist flavor of an Atom Feed with media support + * Represents a list of individual playlists, where each contained entry is + * a playlist. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_PlaylistListFeed extends Zend_Gdata_Media_Feed +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_PlaylistListEntry'; + + /** + * Creates a Playlist list feed, representing a list of playlists, + * usually associated with an individual user. + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/PlaylistVideoEntry.php b/zend/library/Zend/Gdata/YouTube/PlaylistVideoEntry.php new file mode 100644 index 0000000..79c59a8 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/PlaylistVideoEntry.php @@ -0,0 +1,132 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: PlaylistVideoEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_YouTube_VideoEntry + */ +require_once 'Zend/Gdata/YouTube/VideoEntry.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Position + */ +require_once 'Zend/Gdata/YouTube/Extension/Position.php'; + +/** + * Represents the YouTube video playlist flavor of an Atom entry + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_PlaylistVideoEntry extends Zend_Gdata_YouTube_VideoEntry +{ + + protected $_entryClassName = 'Zend_Gdata_YouTube_PlaylistVideoEntry'; + + /** + * Position of the entry in the feed, as specified by the user + * + * @var Zend_Gdata_YouTube_Extension_Position + */ + protected $_position = null; + + /** + * Creates a Playlist video entry, representing an individual video + * in a list of videos contained within a specific playlist + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_position !== null) { + $element->appendChild($this->_position->getDOM($element->ownerDocument)); + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them in the $_entry array based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('yt') . ':' . 'position': + $position = new Zend_Gdata_YouTube_Extension_Position(); + $position->transferFromDOM($child); + $this->_position = $position; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + + /** + * Sets the array of embedded feeds related to the video + * + * @param Zend_Gdata_YouTube_Extension_Position $position + * The position of the entry in the feed, as specified by the user. + * @return Zend_Gdata_YouTube_PlaylistVideoEntry Provides a fluent interface + */ + public function setPosition($position = null) + { + $this->_position = $position; + return $this; + } + + /** + * Returns the position of the entry in the feed, as specified by the user + * + * @return Zend_Gdata_YouTube_Extension_Position The position + */ + public function getPosition() + { + return $this->_position; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/PlaylistVideoFeed.php b/zend/library/Zend/Gdata/YouTube/PlaylistVideoFeed.php new file mode 100644 index 0000000..e4b2b1b --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/PlaylistVideoFeed.php @@ -0,0 +1,68 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: PlaylistVideoFeed.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Feed + */ +require_once 'Zend/Gdata/Media/Feed.php'; + +/** + * @see Zend_Gdata_YouTube_PlaylistVideoEntry + */ +require_once 'Zend/Gdata/YouTube/PlaylistVideoEntry.php'; + +/** + * The YouTube video playlist flavor of an Atom Feed with media support + * Represents a list of videos contained in a playlist. Each entry in this + * feed represents an individual video. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_PlaylistVideoFeed extends Zend_Gdata_Media_Feed +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_PlaylistVideoEntry'; + + /** + * Creates a Play Video feed, representing a list of videos contained + * within a single playlist. + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/SubscriptionEntry.php b/zend/library/Zend/Gdata/YouTube/SubscriptionEntry.php new file mode 100644 index 0000000..5ae402e --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/SubscriptionEntry.php @@ -0,0 +1,446 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: SubscriptionEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Entry + */ +require_once 'Zend/Gdata/Entry.php'; + +/** + * @see Zend_Gdata_Extension_FeedLink + */ +require_once 'Zend/Gdata/Extension/FeedLink.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Description + */ +require_once 'Zend/Gdata/YouTube/Extension/Description.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_PlaylistTitle + */ +require_once 'Zend/Gdata/YouTube/Extension/PlaylistTitle.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_PlaylistId + */ +require_once 'Zend/Gdata/YouTube/Extension/PlaylistId.php'; + +/** + * @see Zend_Gdata_Media_Extension_MediaThumbnail + */ +require_once 'Zend/Gdata/Media/Extension/MediaThumbnail.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Username + */ +require_once 'Zend/Gdata/YouTube/Extension/Username.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_CountHint + */ +require_once 'Zend/Gdata/YouTube/Extension/CountHint.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_QueryString + */ +require_once 'Zend/Gdata/YouTube/Extension/QueryString.php'; + +/** + * Represents the YouTube video subscription flavor of an Atom entry + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_SubscriptionEntry extends Zend_Gdata_Entry +{ + + protected $_entryClassName = 'Zend_Gdata_YouTube_SubscriptionEntry'; + + /** + * Nested feed links + * + * @var array + */ + protected $_feedLink = array(); + + /** + * The username of this entry. + * + * @var Zend_Gdata_YouTube_Extension_Username + */ + protected $_username = null; + + /** + * The playlist title for this entry. + * + * This element is only used on subscriptions to playlists. + * + * @var Zend_Gdata_YouTube_Extension_PlaylistTitle + */ + protected $_playlistTitle = null; + + /** + * The playlist id for this entry. + * + * This element is only used on subscriptions to playlists. + * + * @var Zend_Gdata_YouTube_Extension_PlaylistId + */ + protected $_playlistId = null; + + /** + * The media:thumbnail element for this entry. + * + * This element is only used on subscriptions to playlists. + * + * @var Zend_Gdata_Media_Extension_MediaThumbnail + */ + protected $_mediaThumbnail = null; + + /** + * The countHint for this entry. + * + * @var Zend_Gdata_YouTube_Extension_CountHint + */ + protected $_countHint = null; + + /** + * The queryString for this entry. + * + * @var Zend_Gdata_YouTube_Extension_QueryString + */ + protected $_queryString = null; + + /** + * Creates a subscription entry, representing an individual subscription + * in a list of subscriptions, usually associated with an individual user. + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_countHint != null) { + $element->appendChild($this->_countHint->getDOM($element->ownerDocument)); + } + if ($this->_playlistTitle != null) { + $element->appendChild($this->_playlistTitle->getDOM($element->ownerDocument)); + } + if ($this->_playlistId != null) { + $element->appendChild($this->_playlistId->getDOM($element->ownerDocument)); + } + if ($this->_mediaThumbnail != null) { + $element->appendChild($this->_mediaThumbnail->getDOM($element->ownerDocument)); + } + if ($this->_username != null) { + $element->appendChild($this->_username->getDOM($element->ownerDocument)); + } + if ($this->_queryString != null) { + $element->appendChild($this->_queryString->getDOM($element->ownerDocument)); + } + if ($this->_feedLink != null) { + foreach ($this->_feedLink as $feedLink) { + $element->appendChild($feedLink->getDOM($element->ownerDocument)); + } + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them in the $_entry array based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('gd') . ':' . 'feedLink': + $feedLink = new Zend_Gdata_Extension_FeedLink(); + $feedLink->transferFromDOM($child); + $this->_feedLink[] = $feedLink; + break; + case $this->lookupNamespace('media') . ':' . 'thumbnail': + $mediaThumbnail = new Zend_Gdata_Media_Extension_MediaThumbnail(); + $mediaThumbnail->transferFromDOM($child); + $this->_mediaThumbnail = $mediaThumbnail; + break; + case $this->lookupNamespace('yt') . ':' . 'countHint': + $countHint = new Zend_Gdata_YouTube_Extension_CountHint(); + $countHint->transferFromDOM($child); + $this->_countHint = $countHint; + break; + case $this->lookupNamespace('yt') . ':' . 'playlistTitle': + $playlistTitle = new Zend_Gdata_YouTube_Extension_PlaylistTitle(); + $playlistTitle->transferFromDOM($child); + $this->_playlistTitle = $playlistTitle; + break; + case $this->lookupNamespace('yt') . ':' . 'playlistId': + $playlistId = new Zend_Gdata_YouTube_Extension_PlaylistId(); + $playlistId->transferFromDOM($child); + $this->_playlistId = $playlistId; + break; + case $this->lookupNamespace('yt') . ':' . 'queryString': + $queryString = new Zend_Gdata_YouTube_Extension_QueryString(); + $queryString->transferFromDOM($child); + $this->_queryString = $queryString; + break; + case $this->lookupNamespace('yt') . ':' . 'username': + $username = new Zend_Gdata_YouTube_Extension_Username(); + $username->transferFromDOM($child); + $this->_username = $username; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Sets the array of embedded feeds related to the video + * + * @param array $feedLink The array of embedded feeds relating to the video + * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface + */ + public function setFeedLink($feedLink = null) + { + $this->_feedLink = $feedLink; + return $this; + } + + /** + * Get the feed link property for this entry. + * + * @see setFeedLink + * @param string $rel (optional) The rel value of the link to be found. + * If null, the array of links is returned. + * @return mixed If $rel is specified, a Zend_Gdata_Extension_FeedLink + * object corresponding to the requested rel value is returned + * if found, or null if the requested value is not found. If + * $rel is null or not specified, an array of all available + * feed links for this entry is returned, or null if no feed + * links are set. + */ + public function getFeedLink($rel = null) + { + if ($rel == null) { + return $this->_feedLink; + } else { + foreach ($this->_feedLink as $feedLink) { + if ($feedLink->rel == $rel) { + return $feedLink; + } + } + return null; + } + } + + /** + * Get the playlist title for a 'playlist' subscription. + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_PlaylistId + */ + public function getPlaylistId() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getPlaylistId ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + return $this->_playlistId; + } + } + + /** + * Sets the yt:playlistId element for a new playlist subscription. + * + * @param Zend_Gdata_YouTube_Extension_PlaylistId $id The id of + * the playlist to which to subscribe to. + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface + */ + public function setPlaylistId($id = null) + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The setPlaylistTitle ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + $this->_playlistId = $id; + return $this; + } + } + + /** + * Get the queryString of the subscription + * + * @return Zend_Gdata_YouTube_Extension_QueryString + */ + public function getQueryString() + { + return $this->_queryString; + } + + /** + * Sets the yt:queryString element for a new keyword subscription. + * + * @param Zend_Gdata_YouTube_Extension_QueryString $queryString The query + * string to subscribe to + * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface + */ + public function setQueryString($queryString = null) + { + $this->_queryString = $queryString; + return $this; + } + + /** + * Get the playlist title for a 'playlist' subscription. + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_PlaylistTitle + */ + public function getPlaylistTitle() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getPlaylistTitle ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + return $this->_playlistTitle; + } + } + + /** + * Sets the yt:playlistTitle element for a new playlist subscription. + * + * @param Zend_Gdata_YouTube_Extension_PlaylistTitle $title The title of + * the playlist to which to subscribe to. + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface + */ + public function setPlaylistTitle($title = null) + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The setPlaylistTitle ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + $this->_playlistTitle = $title; + return $this; + } + } + + /** + * Get the counthint for a subscription. + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_CountHint + */ + public function getCountHint() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getCountHint ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + return $this->_countHint; + } + } + + /** + * Get the thumbnail for a subscription. + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_Media_Extension_MediaThumbnail + */ + public function getMediaThumbnail() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getMediaThumbnail ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + return $this->_mediaThumbnail; + } + } + + /** + * Get the username for a channel subscription. + * + * @return Zend_Gdata_YouTube_Extension_Username + */ + public function getUsername() + { + return $this->_username; + } + + /** + * Sets the username for a new channel subscription. + * + * @param Zend_Gdata_YouTube_Extension_Username $username The username of + * the channel to which to subscribe to. + * @return Zend_Gdata_YouTube_SubscriptionEntry Provides a fluent interface + */ + public function setUsername($username = null) + { + $this->_username = $username; + return $this; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/SubscriptionFeed.php b/zend/library/Zend/Gdata/YouTube/SubscriptionFeed.php new file mode 100644 index 0000000..6800c83 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/SubscriptionFeed.php @@ -0,0 +1,68 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: SubscriptionFeed.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Feed + */ +require_once 'Zend/Gdata/Media/Feed.php'; + +/** + * @see Zend_Gdata_YouTube_SubscriptionEntry + */ +require_once 'Zend/Gdata/YouTube/SubscriptionEntry.php'; + +/** + * The YouTube video subscription list flavor of an Atom Feed with media support + * Represents a list of individual subscriptions, where each contained entry is + * a subscription. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_SubscriptionFeed extends Zend_Gdata_Media_Feed +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_SubscriptionEntry'; + + /** + * Creates a Subscription feed, representing a list of subscriptions, + * usually associated with an individual user. + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/UserProfileEntry.php b/zend/library/Zend/Gdata/YouTube/UserProfileEntry.php new file mode 100644 index 0000000..4b859f6 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/UserProfileEntry.php @@ -0,0 +1,1041 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: UserProfileEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Entry + */ +require_once 'Zend/Gdata/Entry.php'; + +/** + * @see Zend_Gdata_Extension_FeedLink + */ +require_once 'Zend/Gdata/Extension/FeedLink.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Description + */ +require_once 'Zend/Gdata/YouTube/Extension/Description.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_AboutMe + */ +require_once 'Zend/Gdata/YouTube/Extension/AboutMe.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Age + */ +require_once 'Zend/Gdata/YouTube/Extension/Age.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Username + */ +require_once 'Zend/Gdata/YouTube/Extension/Username.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Books + */ +require_once 'Zend/Gdata/YouTube/Extension/Books.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Company + */ +require_once 'Zend/Gdata/YouTube/Extension/Company.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Hobbies + */ +require_once 'Zend/Gdata/YouTube/Extension/Hobbies.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Hometown + */ +require_once 'Zend/Gdata/YouTube/Extension/Hometown.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Location + */ +require_once 'Zend/Gdata/YouTube/Extension/Location.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Movies + */ +require_once 'Zend/Gdata/YouTube/Extension/Movies.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Music + */ +require_once 'Zend/Gdata/YouTube/Extension/Music.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Occupation + */ +require_once 'Zend/Gdata/YouTube/Extension/Occupation.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_School + */ +require_once 'Zend/Gdata/YouTube/Extension/School.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Gender + */ +require_once 'Zend/Gdata/YouTube/Extension/Gender.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Relationship + */ +require_once 'Zend/Gdata/YouTube/Extension/Relationship.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_FirstName + */ +require_once 'Zend/Gdata/YouTube/Extension/FirstName.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_LastName + */ +require_once 'Zend/Gdata/YouTube/Extension/LastName.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Statistics + */ +require_once 'Zend/Gdata/YouTube/Extension/Statistics.php'; + +/** + * @see Zend_Gdata_Media_Extension_MediaThumbnail + */ +require_once 'Zend/Gdata/Media/Extension/MediaThumbnail.php'; + +/** + * Represents the YouTube video playlist flavor of an Atom entry + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_UserProfileEntry extends Zend_Gdata_Entry +{ + + protected $_entryClassName = 'Zend_Gdata_YouTube_UserProfileEntry'; + + /** + * Nested feed links + * + * @var array + */ + protected $_feedLink = array(); + + /** + * The username for this profile entry + * + * @var string + */ + protected $_username = null; + + /** + * The description of the user + * + * @var string + */ + protected $_description = null; + + /** + * The contents of the 'About Me' field. + * + * @var string + */ + protected $_aboutMe = null; + + /** + * The age of the user + * + * @var int + */ + protected $_age = null; + + /** + * Books of interest to the user + * + * @var string + */ + protected $_books = null; + + /** + * Company + * + * @var string + */ + protected $_company = null; + + /** + * Hobbies + * + * @var string + */ + protected $_hobbies = null; + + /** + * Hometown + * + * @var string + */ + protected $_hometown = null; + + /** + * Location + * + * @var string + */ + protected $_location = null; + + /** + * Movies + * + * @var string + */ + protected $_movies = null; + + /** + * Music + * + * @var string + */ + protected $_music = null; + + /** + * Occupation + * + * @var string + */ + protected $_occupation = null; + + /** + * School + * + * @var string + */ + protected $_school = null; + + /** + * Gender + * + * @var string + */ + protected $_gender = null; + + /** + * Relationship + * + * @var string + */ + protected $_relationship = null; + + /** + * First name + * + * @var string + */ + protected $_firstName = null; + + /** + * Last name + * + * @var string + */ + protected $_lastName = null; + + /** + * Statistics + * + * @var Zend_Gdata_YouTube_Extension_Statistics + */ + protected $_statistics = null; + + /** + * Thumbnail + * + * @var Zend_Gdata_Media_Extension_MediaThumbnail + */ + protected $_thumbnail = null; + + /** + * Creates a User Profile entry, representing an individual user + * and their attributes. + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_description != null) { + $element->appendChild($this->_description->getDOM($element->ownerDocument)); + } + if ($this->_aboutMe != null) { + $element->appendChild($this->_aboutMe->getDOM($element->ownerDocument)); + } + if ($this->_age != null) { + $element->appendChild($this->_age->getDOM($element->ownerDocument)); + } + if ($this->_username != null) { + $element->appendChild($this->_username->getDOM($element->ownerDocument)); + } + if ($this->_books != null) { + $element->appendChild($this->_books->getDOM($element->ownerDocument)); + } + if ($this->_company != null) { + $element->appendChild($this->_company->getDOM($element->ownerDocument)); + } + if ($this->_hobbies != null) { + $element->appendChild($this->_hobbies->getDOM($element->ownerDocument)); + } + if ($this->_hometown != null) { + $element->appendChild($this->_hometown->getDOM($element->ownerDocument)); + } + if ($this->_location != null) { + $element->appendChild($this->_location->getDOM($element->ownerDocument)); + } + if ($this->_movies != null) { + $element->appendChild($this->_movies->getDOM($element->ownerDocument)); + } + if ($this->_music != null) { + $element->appendChild($this->_music->getDOM($element->ownerDocument)); + } + if ($this->_occupation != null) { + $element->appendChild($this->_occupation->getDOM($element->ownerDocument)); + } + if ($this->_school != null) { + $element->appendChild($this->_school->getDOM($element->ownerDocument)); + } + if ($this->_gender != null) { + $element->appendChild($this->_gender->getDOM($element->ownerDocument)); + } + if ($this->_relationship != null) { + $element->appendChild($this->_relationship->getDOM($element->ownerDocument)); + } + if ($this->_firstName != null) { + $element->appendChild($this->_firstName->getDOM($element->ownerDocument)); + } + if ($this->_lastName != null) { + $element->appendChild($this->_lastName->getDOM($element->ownerDocument)); + } + if ($this->_statistics != null) { + $element->appendChild($this->_statistics->getDOM($element->ownerDocument)); + } + if ($this->_thumbnail != null) { + $element->appendChild($this->_thumbnail->getDOM($element->ownerDocument)); + } + if ($this->_feedLink != null) { + foreach ($this->_feedLink as $feedLink) { + $element->appendChild($feedLink->getDOM($element->ownerDocument)); + } + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them in the $_entry array based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + switch ($absoluteNodeName) { + case $this->lookupNamespace('yt') . ':' . 'description': + $description = new Zend_Gdata_YouTube_Extension_Description(); + $description->transferFromDOM($child); + $this->_description = $description; + break; + case $this->lookupNamespace('yt') . ':' . 'aboutMe': + $aboutMe = new Zend_Gdata_YouTube_Extension_AboutMe(); + $aboutMe->transferFromDOM($child); + $this->_aboutMe = $aboutMe; + break; + case $this->lookupNamespace('yt') . ':' . 'age': + $age = new Zend_Gdata_YouTube_Extension_Age(); + $age->transferFromDOM($child); + $this->_age = $age; + break; + case $this->lookupNamespace('yt') . ':' . 'username': + $username = new Zend_Gdata_YouTube_Extension_Username(); + $username->transferFromDOM($child); + $this->_username = $username; + break; + case $this->lookupNamespace('yt') . ':' . 'books': + $books = new Zend_Gdata_YouTube_Extension_Books(); + $books->transferFromDOM($child); + $this->_books = $books; + break; + case $this->lookupNamespace('yt') . ':' . 'company': + $company = new Zend_Gdata_YouTube_Extension_Company(); + $company->transferFromDOM($child); + $this->_company = $company; + break; + case $this->lookupNamespace('yt') . ':' . 'hobbies': + $hobbies = new Zend_Gdata_YouTube_Extension_Hobbies(); + $hobbies->transferFromDOM($child); + $this->_hobbies = $hobbies; + break; + case $this->lookupNamespace('yt') . ':' . 'hometown': + $hometown = new Zend_Gdata_YouTube_Extension_Hometown(); + $hometown->transferFromDOM($child); + $this->_hometown = $hometown; + break; + case $this->lookupNamespace('yt') . ':' . 'location': + $location = new Zend_Gdata_YouTube_Extension_Location(); + $location->transferFromDOM($child); + $this->_location = $location; + break; + case $this->lookupNamespace('yt') . ':' . 'movies': + $movies = new Zend_Gdata_YouTube_Extension_Movies(); + $movies->transferFromDOM($child); + $this->_movies = $movies; + break; + case $this->lookupNamespace('yt') . ':' . 'music': + $music = new Zend_Gdata_YouTube_Extension_Music(); + $music->transferFromDOM($child); + $this->_music = $music; + break; + case $this->lookupNamespace('yt') . ':' . 'occupation': + $occupation = new Zend_Gdata_YouTube_Extension_Occupation(); + $occupation->transferFromDOM($child); + $this->_occupation = $occupation; + break; + case $this->lookupNamespace('yt') . ':' . 'school': + $school = new Zend_Gdata_YouTube_Extension_School(); + $school->transferFromDOM($child); + $this->_school = $school; + break; + case $this->lookupNamespace('yt') . ':' . 'gender': + $gender = new Zend_Gdata_YouTube_Extension_Gender(); + $gender->transferFromDOM($child); + $this->_gender = $gender; + break; + case $this->lookupNamespace('yt') . ':' . 'relationship': + $relationship = new Zend_Gdata_YouTube_Extension_Relationship(); + $relationship->transferFromDOM($child); + $this->_relationship = $relationship; + break; + case $this->lookupNamespace('yt') . ':' . 'firstName': + $firstName = new Zend_Gdata_YouTube_Extension_FirstName(); + $firstName->transferFromDOM($child); + $this->_firstName = $firstName; + break; + case $this->lookupNamespace('yt') . ':' . 'lastName': + $lastName = new Zend_Gdata_YouTube_Extension_LastName(); + $lastName->transferFromDOM($child); + $this->_lastName = $lastName; + break; + case $this->lookupNamespace('yt') . ':' . 'statistics': + $statistics = new Zend_Gdata_YouTube_Extension_Statistics(); + $statistics->transferFromDOM($child); + $this->_statistics = $statistics; + break; + case $this->lookupNamespace('media') . ':' . 'thumbnail': + $thumbnail = new Zend_Gdata_Media_Extension_MediaThumbnail(); + $thumbnail->transferFromDOM($child); + $this->_thumbnail = $thumbnail; + break; + case $this->lookupNamespace('gd') . ':' . 'feedLink': + $feedLink = new Zend_Gdata_Extension_FeedLink(); + $feedLink->transferFromDOM($child); + $this->_feedLink[] = $feedLink; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Sets the content of the 'about me' field. + * + * @param Zend_Gdata_YouTube_Extension_AboutMe $aboutMe The 'about me' + * information. + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setAboutMe($aboutMe = null) + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The setAboutMe ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + $this->_aboutMe = $aboutMe; + return $this; + } + } + + /** + * Returns the contents of the 'about me' field. + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_AboutMe The 'about me' information + */ + public function getAboutMe() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getAboutMe ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + return $this->_aboutMe; + } + } + + /** + * Sets the content of the 'first name' field. + * + * @param Zend_Gdata_YouTube_Extension_FirstName $firstName The first name + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setFirstName($firstName = null) + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The setFirstName ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + $this->_firstName = $firstName; + return $this; + } + } + + /** + * Returns the first name + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_FirstName The first name + */ + public function getFirstName() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getFirstName ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + return $this->_firstName; + } + } + + /** + * Sets the content of the 'last name' field. + * + * @param Zend_Gdata_YouTube_Extension_LastName $lastName The last name + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setLastName($lastName = null) + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The setLastName ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + $this->_lastName = $lastName; + return $this; + } + } + + /** + * Returns the last name + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_LastName The last name + */ + public function getLastName() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getLastName ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + return $this->_lastName; + } + } + + /** + * Returns the statistics + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_Statistics The profile statistics + */ + public function getStatistics() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getStatistics ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + return $this->_statistics; + } + } + + /** + * Returns the thumbnail + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_Media_Extension_MediaThumbnail The profile thumbnail + */ + public function getThumbnail() + { + if (($this->getMajorProtocolVersion() == null) || + ($this->getMajorProtocolVersion() == 1)) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException('The getThumbnail ' . + ' method is only supported as of version 2 of the YouTube ' . + 'API.'); + } else { + return $this->_thumbnail; + } + } + + /** + * Sets the age + * + * @param Zend_Gdata_YouTube_Extension_Age $age The age + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setAge($age = null) + { + $this->_age = $age; + return $this; + } + + /** + * Returns the age + * + * @return Zend_Gdata_YouTube_Extension_Age The age + */ + public function getAge() + { + return $this->_age; + } + + /** + * Sets the username + * + * @param Zend_Gdata_YouTube_Extension_Username $username The username + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setUsername($username = null) + { + $this->_username = $username; + return $this; + } + + /** + * Returns the username + * + * @return Zend_Gdata_YouTube_Extension_Username The username + */ + public function getUsername() + { + return $this->_username; + } + + /** + * Sets the books + * + * @param Zend_Gdata_YouTube_Extension_Books $books The books + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setBooks($books = null) + { + $this->_books = $books; + return $this; + } + + /** + * Returns the books + * + * @return Zend_Gdata_YouTube_Extension_Books The books + */ + public function getBooks() + { + return $this->_books; + } + + /** + * Sets the company + * + * @param Zend_Gdata_YouTube_Extension_Company $company The company + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setCompany($company = null) + { + $this->_company = $company; + return $this; + } + + /** + * Returns the company + * + * @return Zend_Gdata_YouTube_Extension_Company The company + */ + public function getCompany() + { + return $this->_company; + } + + /** + * Sets the hobbies + * + * @param Zend_Gdata_YouTube_Extension_Hobbies $hobbies The hobbies + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setHobbies($hobbies = null) + { + $this->_hobbies = $hobbies; + return $this; + } + + /** + * Returns the hobbies + * + * @return Zend_Gdata_YouTube_Extension_Hobbies The hobbies + */ + public function getHobbies() + { + return $this->_hobbies; + } + + /** + * Sets the hometown + * + * @param Zend_Gdata_YouTube_Extension_Hometown $hometown The hometown + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setHometown($hometown = null) + { + $this->_hometown = $hometown; + return $this; + } + + /** + * Returns the hometown + * + * @return Zend_Gdata_YouTube_Extension_Hometown The hometown + */ + public function getHometown() + { + return $this->_hometown; + } + + /** + * Sets the location + * + * @param Zend_Gdata_YouTube_Extension_Location $location The location + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setLocation($location = null) + { + $this->_location = $location; + return $this; + } + + /** + * Returns the location + * + * @return Zend_Gdata_YouTube_Extension_Location The location + */ + public function getLocation() + { + return $this->_location; + } + + /** + * Sets the movies + * + * @param Zend_Gdata_YouTube_Extension_Movies $movies The movies + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setMovies($movies = null) + { + $this->_movies = $movies; + return $this; + } + + /** + * Returns the movies + * + * @return Zend_Gdata_YouTube_Extension_Movies The movies + */ + public function getMovies() + { + return $this->_movies; + } + + /** + * Sets the music + * + * @param Zend_Gdata_YouTube_Extension_Music $music The music + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setMusic($music = null) + { + $this->_music = $music; + return $this; + } + + /** + * Returns the music + * + * @return Zend_Gdata_YouTube_Extension_Music The music + */ + public function getMusic() + { + return $this->_music; + } + + /** + * Sets the occupation + * + * @param Zend_Gdata_YouTube_Extension_Occupation $occupation The occupation + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setOccupation($occupation = null) + { + $this->_occupation = $occupation; + return $this; + } + + /** + * Returns the occupation + * + * @return Zend_Gdata_YouTube_Extension_Occupation The occupation + */ + public function getOccupation() + { + return $this->_occupation; + } + + /** + * Sets the school + * + * @param Zend_Gdata_YouTube_Extension_School $school The school + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setSchool($school = null) + { + $this->_school = $school; + return $this; + } + + /** + * Returns the school + * + * @return Zend_Gdata_YouTube_Extension_School The school + */ + public function getSchool() + { + return $this->_school; + } + + /** + * Sets the gender + * + * @param Zend_Gdata_YouTube_Extension_Gender $gender The gender + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setGender($gender = null) + { + $this->_gender = $gender; + return $this; + } + + /** + * Returns the gender + * + * @return Zend_Gdata_YouTube_Extension_Gender The gender + */ + public function getGender() + { + return $this->_gender; + } + + /** + * Sets the relationship + * + * @param Zend_Gdata_YouTube_Extension_Relationship $relationship The relationship + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setRelationship($relationship = null) + { + $this->_relationship = $relationship; + return $this; + } + + /** + * Returns the relationship + * + * @return Zend_Gdata_YouTube_Extension_Relationship The relationship + */ + public function getRelationship() + { + return $this->_relationship; + } + + /** + * Sets the array of embedded feeds related to the video + * + * @param array $feedLink The array of embedded feeds relating to the video + * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface + */ + public function setFeedLink($feedLink = null) + { + $this->_feedLink = $feedLink; + return $this; + } + + /** + * Get the feed link property for this entry. + * + * @see setFeedLink + * @param string $rel (optional) The rel value of the link to be found. + * If null, the array of links is returned. + * @return mixed If $rel is specified, a Zend_Gdata_Extension_FeedLink + * object corresponding to the requested rel value is returned + * if found, or null if the requested value is not found. If + * $rel is null or not specified, an array of all available + * feed links for this entry is returned, or null if no feed + * links are set. + */ + public function getFeedLink($rel = null) + { + if ($rel == null) { + return $this->_feedLink; + } else { + foreach ($this->_feedLink as $feedLink) { + if ($feedLink->rel == $rel) { + return $feedLink; + } + } + return null; + } + } + + /** + * Returns the URL in the gd:feedLink with the provided rel value + * + * @param string $rel The rel value to find + * @return mixed Either the URL as a string or null if a feedLink wasn't + * found with the provided rel value + */ + public function getFeedLinkHref($rel) + { + $feedLink = $this->getFeedLink($rel); + if ($feedLink !== null) { + return $feedLink->href; + } else { + return null; + } + } + + /** + * Returns the URL of the playlist list feed + * + * @return string The URL of the playlist video feed + */ + public function getPlaylistListFeedUrl() + { + return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_PLAYLISTS_REL); + } + + /** + * Returns the URL of the uploads feed + * + * @return string The URL of the uploads video feed + */ + public function getUploadsFeedUrl() + { + return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_UPLOADS_REL); + } + + /** + * Returns the URL of the subscriptions feed + * + * @return string The URL of the subscriptions feed + */ + public function getSubscriptionsFeedUrl() + { + return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_SUBSCRIPTIONS_REL); + } + + /** + * Returns the URL of the contacts feed + * + * @return string The URL of the contacts feed + */ + public function getContactsFeedUrl() + { + return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_CONTACTS_REL); + } + + /** + * Returns the URL of the favorites feed + * + * @return string The URL of the favorites feed + */ + public function getFavoritesFeedUrl() + { + return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_FAVORITES_REL); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/VideoEntry.php b/zend/library/Zend/Gdata/YouTube/VideoEntry.php new file mode 100644 index 0000000..b34f6da --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/VideoEntry.php @@ -0,0 +1,1095 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: VideoEntry.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Extension_Comments + */ +require_once 'Zend/Gdata/Extension/Comments.php'; + +/** + * @see Zend_Gdata_Extension_FeedLink + */ +require_once 'Zend/Gdata/Extension/FeedLink.php'; + +/** + * @see Zend_Gdata_YouTube_MediaEntry + */ +require_once 'Zend/Gdata/YouTube/MediaEntry.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_MediaGroup + */ +require_once 'Zend/Gdata/YouTube/Extension/MediaGroup.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_NoEmbed + */ +require_once 'Zend/Gdata/YouTube/Extension/NoEmbed.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Statistics + */ +require_once 'Zend/Gdata/YouTube/Extension/Statistics.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Link + */ +require_once 'Zend/Gdata/YouTube/Extension/Link.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Racy + */ +require_once 'Zend/Gdata/YouTube/Extension/Racy.php'; + +/** + * @see Zend_Gdata_Extension_Rating + */ +require_once 'Zend/Gdata/Extension/Rating.php'; + +/** + * @see Zend_Gdata_Geo_Extension_GeoRssWhere + */ +require_once 'Zend/Gdata/Geo/Extension/GeoRssWhere.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Control + */ +require_once 'Zend/Gdata/YouTube/Extension/Control.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Recorded + */ +require_once 'Zend/Gdata/YouTube/Extension/Recorded.php'; + +/** + * @see Zend_Gdata_YouTube_Extension_Location + */ +require_once 'Zend/Gdata/YouTube/Extension/Location.php'; + +/** + * Represents the YouTube video flavor of an Atom entry + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_VideoEntry extends Zend_Gdata_YouTube_MediaEntry +{ + + const YOUTUBE_DEVELOPER_TAGS_SCHEMA = 'http://gdata.youtube.com/schemas/2007/developertags.cat'; + const YOUTUBE_CATEGORY_SCHEMA = 'http://gdata.youtube.com/schemas/2007/categories.cat'; + protected $_entryClassName = 'Zend_Gdata_YouTube_VideoEntry'; + + /** + * If null, the video can be embedded + * + * @var Zend_Gdata_YouTube_Extension_NoEmbed|null + */ + protected $_noEmbed = null; + + /** + * Specifies the statistics relating to the video. + * + * @var Zend_Gdata_YouTube_Extension_Statistics + */ + protected $_statistics = null; + + /** + * If not null, specifies that the video has racy content. + * + * @var Zend_Gdata_YouTube_Extension_Racy|null + */ + protected $_racy = null; + + /** + * If not null, specifies that the video is private. + * + * @var Zend_Gdata_YouTube_Extension_Private|null + */ + protected $_private = null; + + /** + * Specifies the video's rating. + * + * @var Zend_Gdata_Extension_Rating + */ + protected $_rating = null; + + /** + * Specifies the comments associated with a video. + * + * @var Zend_Gdata_Extensions_Comments + */ + protected $_comments = null; + + /** + * Nested feed links + * + * @var array + */ + protected $_feedLink = array(); + + /** + * Geo location for the video + * + * @var Zend_Gdata_Geo_Extension_GeoRssWhere + */ + protected $_where = null; + + /** + * Recording date for the video + * + * @var Zend_Gdata_YouTube_Extension_Recorded|null + */ + protected $_recorded = null; + + /** + * Location informtion for the video + * + * @var Zend_Gdata_YouTube_Extension_Location|null + */ + protected $_location = null; + + /** + * Creates a Video entry, representing an individual video + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + + /** + * Retrieves a DOMElement which corresponds to this element and all + * child properties. This is used to build an entry back into a DOM + * and eventually XML text for sending to the server upon updates, or + * for application storage/persistence. + * + * @param DOMDocument $doc The DOMDocument used to construct DOMElements + * @return DOMElement The DOMElement representing this element and all + * child properties. + */ + public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null) + { + $element = parent::getDOM($doc, $majorVersion, $minorVersion); + if ($this->_noEmbed != null) { + $element->appendChild($this->_noEmbed->getDOM( + $element->ownerDocument)); + } + if ($this->_statistics != null) { + $element->appendChild($this->_statistics->getDOM( + $element->ownerDocument)); + } + if ($this->_racy != null) { + $element->appendChild($this->_racy->getDOM( + $element->ownerDocument)); + } + if ($this->_recorded != null) { + $element->appendChild($this->_recorded->getDOM( + $element->ownerDocument)); + } + if ($this->_location != null) { + $element->appendChild($this->_location->getDOM( + $element->ownerDocument)); + } + if ($this->_rating != null) { + $element->appendChild($this->_rating->getDOM( + $element->ownerDocument)); + } + if ($this->_comments != null) { + $element->appendChild($this->_comments->getDOM( + $element->ownerDocument)); + } + if ($this->_feedLink != null) { + foreach ($this->_feedLink as $feedLink) { + $element->appendChild($feedLink->getDOM( + $element->ownerDocument)); + } + } + if ($this->_where != null) { + $element->appendChild($this->_where->getDOM( + $element->ownerDocument)); + } + return $element; + } + + /** + * Creates individual Entry objects of the appropriate type and + * stores them in the $_entry array based upon DOM data. + * + * @param DOMNode $child The DOMNode to process + */ + protected function takeChildFromDOM($child) + { + $absoluteNodeName = $child->namespaceURI . ':' . $child->localName; + + switch ($absoluteNodeName) { + case $this->lookupNamespace('yt') . ':' . 'statistics': + $statistics = new Zend_Gdata_YouTube_Extension_Statistics(); + $statistics->transferFromDOM($child); + $this->_statistics = $statistics; + break; + case $this->lookupNamespace('yt') . ':' . 'racy': + $racy = new Zend_Gdata_YouTube_Extension_Racy(); + $racy->transferFromDOM($child); + $this->_racy = $racy; + break; + case $this->lookupNamespace('yt') . ':' . 'recorded': + $recorded = new Zend_Gdata_YouTube_Extension_Recorded(); + $recorded->transferFromDOM($child); + $this->_recorded = $recorded; + break; + case $this->lookupNamespace('yt') . ':' . 'location': + $location = new Zend_Gdata_YouTube_Extension_Location(); + $location->transferFromDOM($child); + $this->_location = $location; + break; + case $this->lookupNamespace('gd') . ':' . 'rating': + $rating = new Zend_Gdata_Extension_Rating(); + $rating->transferFromDOM($child); + $this->_rating = $rating; + break; + case $this->lookupNamespace('gd') . ':' . 'comments': + $comments = new Zend_Gdata_Extension_Comments(); + $comments->transferFromDOM($child); + $this->_comments = $comments; + break; + case $this->lookupNamespace('yt') . ':' . 'noembed': + $noEmbed = new Zend_Gdata_YouTube_Extension_NoEmbed(); + $noEmbed->transferFromDOM($child); + $this->_noEmbed = $noEmbed; + break; + case $this->lookupNamespace('gd') . ':' . 'feedLink': + $feedLink = new Zend_Gdata_Extension_FeedLink(); + $feedLink->transferFromDOM($child); + $this->_feedLink[] = $feedLink; + break; + case $this->lookupNamespace('georss') . ':' . 'where': + $where = new Zend_Gdata_Geo_Extension_GeoRssWhere(); + $where->transferFromDOM($child); + $this->_where = $where; + break; + case $this->lookupNamespace('atom') . ':' . 'link'; + $link = new Zend_Gdata_YouTube_Extension_Link(); + $link->transferFromDOM($child); + $this->_link[] = $link; + break; + case $this->lookupNamespace('app') . ':' . 'control': + $control = new Zend_Gdata_YouTube_Extension_Control(); + $control->transferFromDOM($child); + $this->_control = $control; + break; + default: + parent::takeChildFromDOM($child); + break; + } + } + + /** + * Sets when the video was recorded. + * + * @param Zend_Gdata_YouTube_Extension_Recorded $recorded When the video was recorded + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setRecorded($recorded = null) + { + $this->_recorded = $recorded; + return $this; + } + + /** + * Gets the date that the video was recorded. + * + * @return Zend_Gdata_YouTube_Extension_Recorded|null + */ + public function getRecorded() + { + return $this->_recorded; + } + + /** + * Sets the location information. + * + * @param Zend_Gdata_YouTube_Extension_Location $location Where the video + * was recorded + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setLocation($location = null) + { + $this->_location = $location; + return $this; + } + + /** + * Gets the location where the video was recorded. + * + * @return Zend_Gdata_YouTube_Extension_Location|null + */ + public function getLocation() + { + return $this->_location; + } + + /** + * If an instance of Zend_Gdata_YouTube_Extension_NoEmbed is passed in, + * the video cannot be embedded. Otherwise, if null is passsed in, the + * video is able to be embedded. + * + * @param Zend_Gdata_YouTube_Extension_NoEmbed $noEmbed Whether or not the + * video can be embedded. + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setNoEmbed($noEmbed = null) + { + $this->_noEmbed = $noEmbed; + return $this; + } + + /** + * If the return value is an instance of + * Zend_Gdata_YouTube_Extension_NoEmbed, this video cannot be embedded. + * + * @return Zend_Gdata_YouTube_Extension_NoEmbed|null Whether or not the video can be embedded + */ + public function getNoEmbed() + { + return $this->_noEmbed; + } + + /** + * Checks whether the video is embeddable. + * + * @return bool Returns true if the video is embeddable. + */ + public function isVideoEmbeddable() + { + if ($this->getNoEmbed() == null) { + return true; + } else { + return false; + } + } + + /** + * Sets the statistics relating to the video. + * + * @param Zend_Gdata_YouTube_Extension_Statistics $statistics The statistics relating to the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setStatistics($statistics = null) + { + $this->_statistics = $statistics; + return $this; + } + + /** + * Returns the statistics relating to the video. + * + * @return Zend_Gdata_YouTube_Extension_Statistics The statistics relating to the video + */ + public function getStatistics() + { + return $this->_statistics; + } + + /** + * Specifies that the video has racy content. + * + * @param Zend_Gdata_YouTube_Extension_Racy $racy The racy flag object + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setRacy($racy = null) + { + if ($this->getMajorProtocolVersion() == 2) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException( + 'Calling getRacy() on a YouTube VideoEntry is deprecated ' . + 'as of version 2 of the API.'); + } + + $this->_racy = $racy; + return $this; + } + + /** + * Returns the racy flag object. + * + * @throws Zend_Gdata_App_VersionException + * @return Zend_Gdata_YouTube_Extension_Racy|null The racy flag object + */ + public function getRacy() + { + if ($this->getMajorProtocolVersion() == 2) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException( + 'Calling getRacy() on a YouTube VideoEntry is deprecated ' . + 'as of version 2 of the API.'); + } + return $this->_racy; + } + + /** + * Sets the rating relating to the video. + * + * @param Zend_Gdata_Extension_Rating $rating The rating relating to the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setRating($rating = null) + { + $this->_rating = $rating; + return $this; + } + + /** + * Returns the rating relating to the video. + * + * @return Zend_Gdata_Extension_Rating The rating relating to the video + */ + public function getRating() + { + return $this->_rating; + } + + /** + * Sets the comments relating to the video. + * + * @param Zend_Gdata_Extension_Comments $comments The comments relating to the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setComments($comments = null) + { + $this->_comments = $comments; + return $this; + } + + /** + * Returns the comments relating to the video. + * + * @return Zend_Gdata_Extension_Comments The comments relating to the video + */ + public function getComments() + { + return $this->_comments; + } + + /** + * Sets the array of embedded feeds related to the video + * + * @param array $feedLink The array of embedded feeds relating to the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setFeedLink($feedLink = null) + { + $this->_feedLink = $feedLink; + return $this; + } + + /** + * Get the feed link property for this entry. + * + * @see setFeedLink + * @param string $rel (optional) The rel value of the link to be found. + * If null, the array of links is returned. + * @return mixed If $rel is specified, a Zend_Gdata_Extension_FeedLink + * object corresponding to the requested rel value is returned + * if found, or null if the requested value is not found. If + * $rel is null or not specified, an array of all available + * feed links for this entry is returned, or null if no feed + * links are set. + */ + public function getFeedLink($rel = null) + { + if ($rel == null) { + return $this->_feedLink; + } else { + foreach ($this->_feedLink as $feedLink) { + if ($feedLink->rel == $rel) { + return $feedLink; + } + } + return null; + } + } + + /** + * Returns the link element relating to video responses. + * + * @return Zend_Gdata_App_Extension_Link + */ + public function getVideoResponsesLink() + { + return $this->getLink(Zend_Gdata_YouTube::VIDEO_RESPONSES_REL); + } + + /** + * Returns the link element relating to video ratings. + * + * @return Zend_Gdata_App_Extension_Link + */ + public function getVideoRatingsLink() + { + return $this->getLink(Zend_Gdata_YouTube::VIDEO_RATINGS_REL); + } + + /** + * Returns the link element relating to video complaints. + * + * @return Zend_Gdata_App_Extension_Link + */ + public function getVideoComplaintsLink() + { + return $this->getLink(Zend_Gdata_YouTube::VIDEO_COMPLAINTS_REL); + } + + /** + * Gets the YouTube video ID based upon the atom:id value + * + * @return string The video ID + */ + public function getVideoId() + { + if ($this->getMajorProtocolVersion() == 2) { + $videoId = $this->getMediaGroup()->getVideoId()->text; + } else { + $fullId = $this->getId()->getText(); + $position = strrpos($fullId, '/'); + if ($position === false) { + require_once 'Zend/Gdata/App/Exception.php'; + throw new Zend_Gdata_App_Exception( + 'Slash not found in atom:id of ' . $fullId); + } else { + $videoId = substr($fullId, $position + 1); + } + } + return $videoId; + } + + /** + * Gets the date that the video was recorded. + * + * @return string|null The date that the video was recorded + */ + public function getVideoRecorded() + { + $recorded = $this->getRecorded(); + if ($recorded != null) { + return $recorded->getText(); + } else { + return null; + } + } + + /** + * Sets the date that the video was recorded. + * + * @param string $recorded The date that the video was recorded, in the + * format of '2001-06-19' + */ + public function setVideoRecorded($recorded) + { + $this->setRecorded( + new Zend_Gdata_YouTube_Extension_Recorded($recorded)); + return $this; + } + + /** + * Gets the georss:where element + * + * @return Zend_Gdata_Geo_Extension_GeoRssWhere + */ + public function getWhere() + { + return $this->_where; + } + + /** + * Sets the georss:where element + * + * @param Zend_Gdata_Geo_Extension_GeoRssWhere $value The georss:where class value + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setWhere($value) + { + $this->_where = $value; + return $this; + } + + /** + * Gets the title of the video as a string. null is returned + * if the video title is not available. + * + * @return string|null The title of the video + */ + public function getVideoTitle() + { + $this->ensureMediaGroupIsNotNull(); + if ($this->getMediaGroup()->getTitle() != null) { + return $this->getMediaGroup()->getTitle()->getText(); + } else { + return null; + } + } + + /** + * Sets the title of the video as a string. + * + * @param string $title Title for the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setVideoTitle($title) + { + $this->ensureMediaGroupIsNotNull(); + $this->getMediaGroup()->setTitle( + new Zend_Gdata_Media_Extension_MediaTitle($title)); + return $this; + } + + /** + * Sets the description of the video as a string. + * + * @param string $description Description for the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setVideoDescription($description) + { + $this->ensureMediaGroupIsNotNull(); + $this->getMediaGroup()->setDescription( + new Zend_Gdata_Media_Extension_MediaDescription($description)); + return $this; + } + + + /** + * Gets the description of the video as a string. null is returned + * if the video description is not available. + * + * @return string|null The description of the video + */ + public function getVideoDescription() + { + $this->ensureMediaGroupIsNotNull(); + if ($this->getMediaGroup()->getDescription() != null) { + return $this->getMediaGroup()->getDescription()->getText(); + } else { + return null; + } + } + + /** + * Gets the URL of the YouTube video watch page. null is returned + * if the video watch page URL is not available. + * + * @return string|null The URL of the YouTube video watch page + */ + public function getVideoWatchPageUrl() + { + $this->ensureMediaGroupIsNotNull(); + if ($this->getMediaGroup()->getPlayer() != null && + array_key_exists(0, $this->getMediaGroup()->getPlayer())) { + $players = $this->getMediaGroup()->getPlayer(); + return $players[0]->getUrl(); + } else { + return null; + } + } + + /** + * Gets an array of the thumbnails representing the video. + * Each thumbnail is an element of the array, and is an + * array of the thumbnail properties - time, height, width, + * and url. For convient usage inside a foreach loop, an + * empty array is returned if there are no thumbnails. + * + * @return array An array of video thumbnails. + */ + public function getVideoThumbnails() + { + $this->ensureMediaGroupIsNotNull(); + if ($this->getMediaGroup()->getThumbnail() != null) { + + $thumbnailArray = array(); + + foreach ($this->getMediaGroup()->getThumbnail() as $thumbnailObj) { + $thumbnail = array(); + $thumbnail['time'] = $thumbnailObj->time; + $thumbnail['height'] = $thumbnailObj->height; + $thumbnail['width'] = $thumbnailObj->width; + $thumbnail['url'] = $thumbnailObj->url; + $thumbnailArray[] = $thumbnail; + } + return $thumbnailArray; + } else { + return array(); + } + } + + /** + * Gets the URL of the flash player SWF. null is returned if the + * duration value is not available. + * + * @return string|null The URL of the flash player SWF + */ + public function getFlashPlayerUrl() + { + $this->ensureMediaGroupIsNotNull(); + foreach ($this->getMediaGroup()->getContent() as $content) { + if ($content->getType() === 'application/x-shockwave-flash') { + return $content->getUrl(); + } + } + return null; + } + + /** + * Gets the duration of the video, in seconds. null is returned + * if the duration value is not available. + * + * @return string|null The duration of the video, in seconds. + */ + public function getVideoDuration() + { + $this->ensureMediaGroupIsNotNull(); + if ($this->getMediaGroup()->getDuration() != null) { + return $this->getMediaGroup()->getDuration()->getSeconds(); + } else { + return null; + } + } + + /** + * Checks whether the video is private. + * + * @return bool Return true if video is private + */ + public function isVideoPrivate() + { + $this->ensureMediaGroupIsNotNull(); + if ($this->getMediaGroup()->getPrivate() != null) { + return true; + } else { + return false; + } + } + + /** + * Sets video to private. + * + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setVideoPrivate() + { + $this->ensureMediaGroupIsNotNull(); + $this->getMediaGroup()->setPrivate(new Zend_Gdata_YouTube_Extension_Private()); + return $this; + } + + /** + * Sets a private video to be public. + * + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setVideoPublic() + { + $this->ensureMediaGroupIsNotNull(); + $this->getMediaGroup()->private = null; + return $this; + } + + /** + * Gets an array of the tags assigned to this video. For convient + * usage inside a foreach loop, an empty array is returned when there + * are no tags assigned. + * + * @return array An array of the tags assigned to this video + */ + public function getVideoTags() + { + $this->ensureMediaGroupIsNotNull(); + if ($this->getMediaGroup()->getKeywords() != null) { + + $keywords = $this->getMediaGroup()->getKeywords(); + $keywordsString = $keywords->getText(); + if (strlen(trim($keywordsString)) > 0) { + return preg_split('/(, *)|,/', $keywordsString); + } + } + return array(); + } + + /** + * Sets the keyword tags for a video. + * + * @param mixed $tags Either a comma-separated string or an array + * of tags for the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setVideoTags($tags) + { + $this->ensureMediaGroupIsNotNull(); + $keywords = new Zend_Gdata_Media_Extension_MediaKeywords(); + if (is_array($tags)) { + $tags = implode(', ', $tags); + } + $keywords->setText($tags); + $this->getMediaGroup()->setKeywords($keywords); + return $this; + } + + /** + * Gets the number of views for this video. null is returned if the + * number of views is not available. + * + * @return string|null The number of views for this video + */ + public function getVideoViewCount() + { + if ($this->getStatistics() != null) { + return $this->getStatistics()->getViewCount(); + } else { + return null; + } + } + + /** + * Gets the location specified for this video, if available. The location + * is returned as an array containing the keys 'longitude' and 'latitude'. + * null is returned if the location is not available. + * + * @return array|null The location specified for this video + */ + public function getVideoGeoLocation() + { + if ($this->getWhere() != null && + $this->getWhere()->getPoint() != null && + ($position = $this->getWhere()->getPoint()->getPos()) != null) { + + $positionString = $position->__toString(); + + if (strlen(trim($positionString)) > 0) { + $positionArray = explode(' ', trim($positionString)); + if (count($positionArray) == 2) { + $returnArray = array(); + $returnArray['latitude'] = $positionArray[0]; + $returnArray['longitude'] = $positionArray[1]; + return $returnArray; + } + } + } + return null; + } + + /** + * Gets the rating information for this video, if available. The rating + * is returned as an array containing the keys 'average' and 'numRaters'. + * null is returned if the rating information is not available. + * + * @return array|null The rating information for this video + */ + public function getVideoRatingInfo() + { + if ($this->getRating() != null) { + $returnArray = array(); + $returnArray['average'] = $this->getRating()->getAverage(); + $returnArray['numRaters'] = $this->getRating()->getNumRaters(); + return $returnArray; + } else { + return null; + } + } + + /** + * Gets the category of this video, if available. The category is returned + * as a string. Valid categories are found at: + * http://gdata.youtube.com/schemas/2007/categories.cat + * If the category is not set, null is returned. + * + * @return string|null The category of this video + */ + public function getVideoCategory() + { + $this->ensureMediaGroupIsNotNull(); + $categories = $this->getMediaGroup()->getCategory(); + if ($categories != null) { + foreach($categories as $category) { + if ($category->getScheme() == self::YOUTUBE_CATEGORY_SCHEMA) { + return $category->getText(); + } + } + } + return null; + } + + /** + * Sets the category of the video as a string. + * + * @param string $category Categories for the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setVideoCategory($category) + { + $this->ensureMediaGroupIsNotNull(); + $this->getMediaGroup()->setCategory(array(new Zend_Gdata_Media_Extension_MediaCategory($category, self::YOUTUBE_CATEGORY_SCHEMA))); + return $this; + } + + /** + * Gets the developer tags for the video, if available and if client is + * authenticated with a valid developerKey. The tags are returned + * as an array. + * If no tags are set, null is returned. + * + * @return array|null The developer tags for this video or null if none were set. + */ + public function getVideoDeveloperTags() + { + $developerTags = null; + $this->ensureMediaGroupIsNotNull(); + + $categoryArray = $this->getMediaGroup()->getCategory(); + if ($categoryArray != null) { + foreach ($categoryArray as $category) { + if ($category instanceof Zend_Gdata_Media_Extension_MediaCategory) { + if ($category->getScheme() == self::YOUTUBE_DEVELOPER_TAGS_SCHEMA) { + $developerTags[] = $category->getText(); + } + } + } + return $developerTags; + } + return null; + } + + /** + * Adds a developer tag to array of tags for the video. + * + * @param string $developerTag DeveloperTag for the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function addVideoDeveloperTag($developerTag) + { + $this->ensureMediaGroupIsNotNull(); + $newCategory = new Zend_Gdata_Media_Extension_MediaCategory($developerTag, self::YOUTUBE_DEVELOPER_TAGS_SCHEMA); + + if ($this->getMediaGroup()->getCategory() == null) { + $this->getMediaGroup()->setCategory($newCategory); + } else { + $categories = $this->getMediaGroup()->getCategory(); + $categories[] = $newCategory; + $this->getMediaGroup()->setCategory($categories); + } + return $this; + } + + /** + * Set multiple developer tags for the video as strings. + * + * @param array $developerTags Array of developerTag for the video + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface + */ + public function setVideoDeveloperTags($developerTags) + { + foreach($developerTags as $developerTag) { + $this->addVideoDeveloperTag($developerTag); + } + return $this; + } + + + /** + * Get the current publishing state of the video. + * + * @return Zend_Gdata_YouTube_Extension_State|null The publishing state of this video + */ + public function getVideoState() + { + $control = $this->getControl(); + if ($control != null && + $control->getDraft() != null && + $control->getDraft()->getText() == 'yes') { + + return $control->getState(); + } + return null; + } + + /** + * Get the VideoEntry's Zend_Gdata_YouTube_Extension_MediaGroup object. + * If the mediaGroup does not exist, then set it. + * + * @return void + */ + public function ensureMediaGroupIsNotNull() + { + if ($this->getMediagroup() == null) { + $this->setMediagroup(new Zend_Gdata_YouTube_Extension_MediaGroup()); + } + } + + /** + * Helper function to conveniently set a video's rating. + * + * @param integer $ratingValue A number representing the rating. Must + * be between 1 and 5 inclusive. + * @throws Zend_Gdata_Exception + * @return Zend_Gdata_YouTube_VideoEntry Provides a fluent interface. + */ + public function setVideoRating($ratingValue) + { + if ($ratingValue < 1 || $ratingValue > 5) { + require_once 'Zend/Gdata/App/InvalidArgumentException.php'; + throw new Zend_Gdata_App_InvalidArgumentException( + 'Rating for video entry must be between 1 and 5 inclusive.'); + } + + require_once 'Zend/Gdata/Extension/Rating.php'; + $rating = new Zend_Gdata_Extension_Rating(null, 1, 5, null, + $ratingValue); + $this->setRating($rating); + return $this; + } + + /** + * Retrieve the URL for a video's comment feed. + * + * @return string|null The URL if found, or null if not found. + */ + public function getVideoCommentFeedUrl() + { + $commentsExtension = $this->getComments(); + $commentsFeedUrl = null; + if ($commentsExtension) { + $commentsFeedLink = $commentsExtension->getFeedLink(); + if ($commentsFeedLink) { + $commentsFeedUrl = $commentsFeedLink->getHref(); + } + } + return $commentsFeedUrl; + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/VideoFeed.php b/zend/library/Zend/Gdata/YouTube/VideoFeed.php new file mode 100644 index 0000000..ee2e277 --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/VideoFeed.php @@ -0,0 +1,65 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: VideoFeed.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Zend_Gdata_Media_Feed + */ +require_once 'Zend/Gdata/Media/Feed.php'; + +/** + * @see Zend_Gdata_YouTube_VideoEntry + */ +require_once 'Zend/Gdata/YouTube/VideoEntry.php'; + +/** + * The YouTube video flavor of an Atom Feed with media support + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_VideoFeed extends Zend_Gdata_Media_Feed +{ + + /** + * The classname for individual feed elements. + * + * @var string + */ + protected $_entryClassName = 'Zend_Gdata_YouTube_VideoEntry'; + + /** + * Creates a Video feed, representing a list of videos + * + * @param DOMElement $element (optional) DOMElement from which this + * object should be constructed. + */ + public function __construct($element = null) + { + $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces); + parent::__construct($element); + } + +} diff --git a/zend/library/Zend/Gdata/YouTube/VideoQuery.php b/zend/library/Zend/Gdata/YouTube/VideoQuery.php new file mode 100644 index 0000000..aee80bb --- /dev/null +++ b/zend/library/Zend/Gdata/YouTube/VideoQuery.php @@ -0,0 +1,540 @@ +<?php + +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: VideoQuery.php 25185 2013-01-08 08:07:08Z frosch $ + */ + +/** + * Zend_Gdata_YouTube + */ +require_once('Zend/Gdata/YouTube.php'); + +/** + * Zend_Gdata_Query + */ +require_once('Zend/Gdata/Query.php'); + +/** + * Assists in constructing queries for YouTube videos + * + * @link http://code.google.com/apis/youtube/ + * + * @category Zend + * @package Zend_Gdata + * @subpackage YouTube + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Gdata_YouTube_VideoQuery extends Zend_Gdata_Query +{ + + /** + * Create Gdata_YouTube_VideoQuery object + */ + public function __construct($url = null) + { + parent::__construct($url); + } + + /** + * Sets the type of feed this query should be used to search + * + * @param string $feedType The type of feed + * @param string $videoId The ID of the video associated with this query + * @param string $entry The ID of the entry associated with this query + */ + public function setFeedType($feedType, $videoId = null, $entry = null) + { + switch ($feedType) { + case 'top rated': + $this->_url = Zend_Gdata_YouTube::STANDARD_TOP_RATED_URI; + break; + case 'most viewed': + $this->_url = Zend_Gdata_YouTube::STANDARD_MOST_VIEWED_URI; + break; + case 'recently featured': + $this->_url = Zend_Gdata_YouTube::STANDARD_RECENTLY_FEATURED_URI; + break; + case 'mobile': + $this->_url = Zend_Gdata_YouTube::STANDARD_WATCH_ON_MOBILE_URI; + break; + case 'related': + if ($videoId === null) { + require_once 'Zend/Gdata/App/InvalidArgumentException.php'; + throw new Zend_Gdata_App_InvalidArgumentException( + 'Video ID must be set for feed of type: ' . $feedType); + } else { + $this->_url = Zend_Gdata_YouTube::VIDEO_URI . '/' . $videoId . + '/related'; + } + break; + case 'responses': + if ($videoId === null) { + require_once 'Zend/Gdata/App/InvalidArgumentException.php'; + throw new Zend_Gdata_App_Exception( + 'Video ID must be set for feed of type: ' . $feedType); + } else { + $this->_url = Zend_Gdata_YouTube::VIDEO_URI . '/' . $videoId . + '/responses'; + } + break; + case 'comments': + if ($videoId === null) { + require_once 'Zend/Gdata/App/InvalidArgumentException.php'; + throw new Zend_Gdata_App_Exception( + 'Video ID must be set for feed of type: ' . $feedType); + } else { + $this->_url = Zend_Gdata_YouTube::VIDEO_URI . '/' . + $videoId . '/comments'; + if ($entry !== null) { + $this->_url .= '/' . $entry; + } + } + break; + default: + require_once 'Zend/Gdata/App/Exception.php'; + throw new Zend_Gdata_App_Exception('Unknown feed type'); + break; + } + } + + /** + * Sets the location parameter for the query + * + * @param string $value + * @throws Zend_Gdata_App_InvalidArgumentException + * @return Zend_Gdata_YouTube_VideoQuery Provides a fluent interface + */ + public function setLocation($value) + { + switch($value) { + case null: + unset($this->_params['location']); + default: + $parameters = explode(',', $value); + if (count($parameters) != 2) { + require_once 'Zend/Gdata/App/InvalidArgumentException.php'; + throw new Zend_Gdata_App_InvalidArgumentException( + 'You must provide 2 coordinates to the location ' . + 'URL parameter'); + } + + foreach($parameters as $param) { + $temp = trim($param); + // strip off the optional exclamation mark for numeric check + if (substr($temp, -1) == '!') { + $temp = substr($temp, 0, -1); + } + if (!is_numeric($temp)) { + require_once 'Zend/Gdata/App/InvalidArgumentException.php'; + throw new Zend_Gdata_App_InvalidArgumentException( + 'Value provided to location parameter must' . + ' be in the form of two coordinates'); + } + } + $this->_params['location'] = $value; + } + } + + /** + * Get the value of the location parameter + * + * @return string|null Return the location if it exists, null otherwise. + */ + public function getLocation() + { + if (array_key_exists('location', $this->_params)) { + return $this->_params['location']; + } else { + return null; + } + } + + + /** + * Sets the location-radius parameter for the query + * + * @param string $value + * @return Zend_Gdata_YouTube_VideoQuery Provides a fluent interface + */ + public function setLocationRadius($value) + { + switch($value) { + case null: + unset($this->_params['location-radius']); + default: + $this->_params['location-radius'] = $value; + } + } + + /** + * Get the value of the location-radius parameter + * + * @return string|null Return the location-radius if it exists, + * null otherwise. + */ + public function getLocationRadius() + { + if (array_key_exists('location-radius', $this->_params)) { + return $this->_params['location-radius']; + } else { + return null; + } + } + + /** + * Sets the time period over which this query should apply + * + * @param string $value + * @throws Zend_Gdata_App_InvalidArgumentException + * @return Zend_Gdata_YouTube_VideoQuery Provides a fluent interface + */ + public function setTime($value = null) + { + switch ($value) { + case 'today': + $this->_params['time'] = 'today'; + break; + case 'this_week': + $this->_params['time'] = 'this_week'; + break; + case 'this_month': + $this->_params['time'] = 'this_month'; + break; + case 'all_time': + $this->_params['time'] = 'all_time'; + break; + case null: + unset($this->_params['time']); + default: + require_once 'Zend/Gdata/App/InvalidArgumentException.php'; + throw new Zend_Gdata_App_InvalidArgumentException( + 'Unknown time value'); + break; + } + return $this; + } + + /** + * Sets the value of the uploader parameter + * + * @param string $value The value of the uploader parameter. Currently this + * can only be set to the value of 'partner'. + * @throws Zend_Gdata_App_InvalidArgumentException + * @return Zend_Gdata_YouTube_VideoQuery Provides a fluent interface + */ + public function setUploader($value = null) + { + switch ($value) { + case 'partner': + $this->_params['uploader'] = 'partner'; + break; + case null: + unset($this->_params['uploader']); + break; + default: + require_once 'Zend/Gdata/App/InvalidArgumentException.php'; + throw new Zend_Gdata_App_InvalidArgumentException( + 'Unknown value for uploader'); + } + return $this; + } + + /** + * Sets the formatted video query (vq) URL param value + * + * @param string $value + * @return Zend_Gdata_YouTube_VideoQuery Provides a fluent interface + */ + public function setVideoQuery($value = null) + { + if ($value != null) { + $this->_params['vq'] = $value; + } else { + unset($this->_params['vq']); + } + return $this; + } + + /** + * Sets the param to return videos of a specific format + * + * @param string $value + * @return Zend_Gdata_YouTube_VideoQuery Provides a fluent interface + */ + public function setFormat($value = null) + { + if ($value != null) { + $this->_params['format'] = $value; + } else { + unset($this->_params['format']); + } + return $this; + } + + /** + * Sets whether or not to include racy videos in the search results + * + * @param string $value + * @return Zend_Gdata_YouTube_VideoQuery Provides a fluent interface + */ + public function setRacy($value = null) + { + switch ($value) { + case 'include': + $this->_params['racy'] = $value; + break; + case 'exclude': + $this->_params['racy'] = $value; + break; + case null: + unset($this->_params['racy']); + break; + } + return $this; + } + + /** + * Whether or not to include racy videos in the search results + * + * @return string|null The value of racy if it exists, null otherwise. + */ + public function getRacy() + { + if (array_key_exists('racy', $this->_params)) { + return $this->_params['racy']; + } else { + return null; + } + } + + /** + * Set the safeSearch parameter + * + * @param string $value The value of the parameter, currently only 'none', + * 'moderate' or 'strict' are allowed values. + * @throws Zend_Gdata_App_InvalidArgumentException + * @return Zend_Gdata_YouTube_VideoQuery Provides a fluent interface + */ + public function setSafeSearch($value) + { + switch ($value) { + case 'none': + $this->_params['safeSearch'] = 'none'; + break; + case 'moderate': + $this->_params['safeSearch'] = 'moderate'; + break; + case 'strict': + $this->_params['safeSearch'] = 'strict'; + break; + case null: + unset($this->_params['safeSearch']); + default: + require_once 'Zend/Gdata/App/InvalidArgumentException.php'; + throw new Zend_Gdata_App_InvalidArgumentException( + 'The safeSearch parameter only supports the values '. + '\'none\', \'moderate\' or \'strict\'.'); + } + } + + /** + * Return the value of the safeSearch parameter + * + * @return string|null The value of the safeSearch parameter if it has been + * set, null otherwise. + */ + public function getSafeSearch() + { + if (array_key_exists('safeSearch', $this->_params)) { + return $this->_params['safeSearch']; + } + return $this; + } + + /** + * Set the value of the orderby parameter + * + * @param string $value + * @return Zend_Gdata_YouTube_Query Provides a fluent interface + */ + public function setOrderBy($value) + { + if ($value != null) { + $this->_params['orderby'] = $value; + } else { + unset($this->_params['orderby']); + } + return $this; + } + + /** + * Return the value of the format parameter + * + * @return string|null The value of format if it exists, null otherwise. + */ + public function getFormat() + { + if (array_key_exists('format', $this->_params)) { + return $this->_params['format']; + } else { + return null; + } + } + + /** + * Return the value of the video query that has been set + * + * @return string|null The value of the video query if it exists, + * null otherwise. + */ + public function getVideoQuery() + { + if (array_key_exists('vq', $this->_params)) { + return $this->_params['vq']; + } else { + return null; + } + } + + /** + * Return the value of the time parameter + * + * @return string|null The time parameter if it exists, null otherwise. + */ + public function getTime() + { + if (array_key_exists('time', $this->_params)) { + return $this->_params['time']; + } else { + return null; + } + } + + /** + * Return the value of the orderby parameter if it exists + * + * @return string|null The value of orderby if it exists, null otherwise. + */ + public function getOrderBy() + { + if (array_key_exists('orderby', $this->_params)) { + return $this->_params['orderby']; + } else { + return null; + } + } + + /** + * Generate the query string from the URL parameters, optionally modifying + * them based on protocol version. + * + * @param integer $majorProtocolVersion The major protocol version + * @param integer $minorProtocolVersion The minor protocol version + * @throws Zend_Gdata_App_VersionException + * @return string querystring + */ + public function getQueryString($majorProtocolVersion = null, + $minorProtocolVersion = null) + { + $queryArray = array(); + + foreach ($this->_params as $name => $value) { + if (substr($name, 0, 1) == '_') { + continue; + } + + switch($name) { + case 'location-radius': + if ($majorProtocolVersion == 1) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException("The $name " . + "parameter is only supported in version 2."); + } + break; + + case 'racy': + if ($majorProtocolVersion == 2) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException("The $name " . + "parameter is not supported in version 2. " . + "Please use 'safeSearch'."); + } + break; + + case 'safeSearch': + if ($majorProtocolVersion == 1) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException("The $name " . + "parameter is only supported in version 2. " . + "Please use 'racy'."); + } + break; + + case 'uploader': + if ($majorProtocolVersion == 1) { + require_once 'Zend/Gdata/App/VersionException.php'; + throw new Zend_Gdata_App_VersionException("The $name " . + "parameter is only supported in version 2."); + } + break; + + case 'vq': + if ($majorProtocolVersion == 2) { + $name = 'q'; + } + break; + } + + $queryArray[] = urlencode($name) . '=' . urlencode($value); + + } + if (count($queryArray) > 0) { + return '?' . implode('&', $queryArray); + } else { + return ''; + } + } + + /** + * Returns the generated full query URL, optionally modifying it based on + * the protocol version. + * + * @param integer $majorProtocolVersion The major protocol version + * @param integer $minorProtocolVersion The minor protocol version + * @return string The URL + */ + public function getQueryUrl($majorProtocolVersion = null, + $minorProtocolVersion = null) + { + if (isset($this->_url)) { + $url = $this->_url; + } else { + $url = Zend_Gdata_YouTube::VIDEO_URI; + } + if ($this->getCategory() !== null) { + $url .= '/-/' . $this->getCategory(); + } + $url = $url . $this->getQueryString($majorProtocolVersion, + $minorProtocolVersion); + return $url; + } + +} |
