diff -r 5e7a0fedabdf -r 877f952ae2bd web/lib/Zend/Service/SlideShare.php --- a/web/lib/Zend/Service/SlideShare.php Thu Mar 21 17:31:31 2013 +0100 +++ b/web/lib/Zend/Service/SlideShare.php Thu Mar 21 19:50:53 2013 +0100 @@ -15,9 +15,9 @@ * @category Zend * @package Zend_Service * @subpackage SlideShare - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @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: SlideShare.php 20096 2010-01-06 02:05:09Z bkarwin $ + * @version $Id: SlideShare.php 25283 2013-03-09 10:07:13Z frosch $ */ /** @@ -44,12 +44,11 @@ * @package Zend_Service * @subpackage SlideShare * @throws Zend_Service_SlideShare_Exception - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @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_Service_SlideShare { - /** * Web service result code mapping */ @@ -71,17 +70,17 @@ /** * Slide share Web service communication URIs */ - const SERVICE_UPLOAD_URI = 'http://www.slideshare.net/api/1/upload_slideshow'; - const SERVICE_GET_SHOW_URI = 'http://www.slideshare.net/api/1/get_slideshow'; - const SERVICE_GET_SHOW_BY_USER_URI = 'http://www.slideshare.net/api/1/get_slideshow_by_user'; - const SERVICE_GET_SHOW_BY_TAG_URI = 'http://www.slideshare.net/api/1/get_slideshow_by_tag'; - const SERVICE_GET_SHOW_BY_GROUP_URI = 'http://www.slideshare.net/api/1/get_slideshows_from_group'; + const SERVICE_UPLOAD_URI = 'https://www.slideshare.net/api/2/upload_slideshow'; + const SERVICE_GET_SHOW_URI = 'https://www.slideshare.net/api/2/get_slideshow'; + const SERVICE_GET_SHOW_BY_USER_URI = 'https://www.slideshare.net/api/2/get_slideshows_by_user'; + const SERVICE_GET_SHOW_BY_TAG_URI = 'https://www.slideshare.net/api/2/get_slideshows_by_tag'; + const SERVICE_GET_SHOW_BY_GROUP_URI = 'https://www.slideshare.net/api/2/get_slideshows_by_group'; /** * The MIME type of Slideshow files * */ - const POWERPOINT_MIME_TYPE = "application/vnd.ms-powerpoint"; + const POWERPOINT_MIME_TYPE = "application/vnd.ms-powerpoint"; /** * The API key to use in requests @@ -147,15 +146,20 @@ public function getHttpClient() { - if(!($this->_httpclient instanceof Zend_Http_Client)) { + if (!($this->_httpclient instanceof Zend_Http_Client)) { $client = new Zend_Http_Client(); - $client->setConfig(array('maxredirects' => 2, - 'timeout' => 5)); + $client->setConfig( + array( + 'maxredirects' => 2, + 'timeout' => 5 + ) + ); $this->setHttpClient($client); } $this->_httpclient->resetParameters(); + return $this->_httpclient; } @@ -181,10 +185,16 @@ public function getCacheObject() { - if(!($this->_cacheobject instanceof Zend_Cache_Core)) { - $cache = Zend_Cache::factory('Core', 'File', array('lifetime' => 43200, - 'automatic_serialization' => true), - array('cache_dir' => '/tmp')); + if (!($this->_cacheobject instanceof Zend_Cache_Core)) { + $cache = Zend_Cache::factory( + 'Core', + 'File', + array( + 'lifetime' => 43200, + 'automatic_serialization' => true + ), + array('cache_dir' => '/tmp') + ); $this->setCacheObject($cache); } @@ -283,17 +293,19 @@ /** * The Constructor * - * @param string $apikey The API key + * @param string $apikey The API key * @param string $sharedSecret The shared secret - * @param string $username The username - * @param string $password The password + * @param string $username The username + * @param string $password The password */ - public function __construct($apikey, $sharedSecret, $username = null, $password = null) + public function __construct( + $apikey, $sharedSecret, $username = null, $password = null + ) { $this->setApiKey($apikey) - ->setSharedSecret($sharedSecret) - ->setUserName($username) - ->setPassword($password); + ->setSharedSecret($sharedSecret) + ->setUserName($username) + ->setPassword($password); $this->_httpclient = new Zend_Http_Client(); } @@ -301,41 +313,47 @@ /** * Uploads the specified Slide show the the server * - * @param Zend_Service_SlideShare_SlideShow $ss The slide show object representing the slide show to upload - * @param boolean $make_src_public Determines if the the slide show's source file is public or not upon upload + * @param Zend_Service_SlideShare_SlideShow $ss The slide show object representing the slide show to upload + * @param boolean $makeSrcPublic Determines if the the slide show's source file is public or not upon upload * @return Zend_Service_SlideShare_SlideShow The passed Slide show object, with the new assigned ID provided + * @throws Zend_Service_SlideShare_Exception */ - public function uploadSlideShow(Zend_Service_SlideShare_SlideShow $ss, $make_src_public = true) + public function uploadSlideShow( + Zend_Service_SlideShare_SlideShow $ss, $makeSrcPublic = true + ) { - $timestamp = time(); - $params = array('api_key' => $this->getApiKey(), - 'ts' => $timestamp, - 'hash' => sha1($this->getSharedSecret().$timestamp), - 'username' => $this->getUserName(), - 'password' => $this->getPassword(), - 'slideshow_title' => $ss->getTitle()); + $params = array( + 'api_key' => $this->getApiKey(), + 'ts' => $timestamp, + 'hash' => sha1($this->getSharedSecret() . $timestamp), + 'username' => $this->getUserName(), + 'password' => $this->getPassword(), + 'slideshow_title' => $ss->getTitle() + ); $description = $ss->getDescription(); - $tags = $ss->getTags(); + $tags = $ss->getTags(); $filename = $ss->getFilename(); - if(!file_exists($filename) || !is_readable($filename)) { + if (!file_exists($filename) || !is_readable($filename)) { require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception("Specified Slideshow for upload not found or unreadable"); + throw new Zend_Service_SlideShare_Exception( + 'Specified Slideshow for upload not found or unreadable' + ); } - if(!empty($description)) { + if (!empty($description)) { $params['slideshow_description'] = $description; } else { $params['slideshow_description'] = ""; } - if(!empty($tags)) { + if (!empty($tags)) { $tmp = array(); - foreach($tags as $tag) { + foreach ($tags as $tag) { $tmp[] = "\"$tag\""; } $params['slideshow_tags'] = implode(' ', $tmp); @@ -343,7 +361,6 @@ $params['slideshow_tags'] = ""; } - $client = $this->getHttpClient(); $client->setUri(self::SERVICE_UPLOAD_URI); $client->setParameterPost($params); @@ -352,23 +369,29 @@ require_once 'Zend/Http/Client/Exception.php'; try { $response = $client->request('POST'); - } catch(Zend_Http_Client_Exception $e) { + } catch (Zend_Http_Client_Exception $e) { require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception("Service Request Failed: {$e->getMessage()}", 0, $e); + throw new Zend_Service_SlideShare_Exception( + "Service Request Failed: {$e->getMessage()}", 0, $e + ); } $sxe = simplexml_load_string($response->getBody()); - if($sxe->getName() == "SlideShareServiceError") { + if ($sxe->getName() == "SlideShareServiceError") { $message = (string)$sxe->Message[0]; list($code, $error_str) = explode(':', $message); require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception(trim($error_str), $code); + throw new Zend_Service_SlideShare_Exception(trim( + $error_str + ), $code); } - if(!$sxe->getName() == "SlideShowUploaded") { + if (!$sxe->getName() == "SlideShowUploaded") { require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception("Unknown XML Respons Received"); + throw new Zend_Service_SlideShare_Exception( + 'Unknown XML Respons Received' + ); } $ss->setId((int)(string)$sxe->SlideShowID); @@ -381,21 +404,24 @@ * * @param int $ss_id The slide show ID * @return Zend_Service_SlideShare_SlideShow the Slideshow object + * @throws Zend_Service_SlideShare_Exception */ public function getSlideShow($ss_id) { $timestamp = time(); - $params = array('api_key' => $this->getApiKey(), - 'ts' => $timestamp, - 'hash' => sha1($this->getSharedSecret().$timestamp), - 'slideshow_id' => $ss_id); + $params = array( + 'api_key' => $this->getApiKey(), + 'ts' => $timestamp, + 'hash' => sha1($this->getSharedSecret() . $timestamp), + 'slideshow_id' => $ss_id + ); $cache = $this->getCacheObject(); $cache_key = md5("__zendslideshare_cache_$ss_id"); - if(!$retval = $cache->load($cache_key)) { + if (!$retval = $cache->load($cache_key)) { $client = $this->getHttpClient(); $client->setUri(self::SERVICE_GET_SHOW_URI); @@ -404,26 +430,31 @@ require_once 'Zend/Http/Client/Exception.php'; try { $response = $client->request('POST'); - } catch(Zend_Http_Client_Exception $e) { + } catch (Zend_Http_Client_Exception $e) { require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception("Service Request Failed: {$e->getMessage()}", 0, $e); + throw new Zend_Service_SlideShare_Exception( + "Service Request Failed: {$e->getMessage()}", 0, $e + ); } $sxe = simplexml_load_string($response->getBody()); - if($sxe->getName() == "SlideShareServiceError") { + if ($sxe->getName() == "SlideShareServiceError") { $message = (string)$sxe->Message[0]; list($code, $error_str) = explode(':', $message); require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception(trim($error_str), $code); + throw new Zend_Service_SlideShare_Exception(trim( + $error_str + ), $code); } - if(!$sxe->getName() == 'Slideshows') { + if (!($sxe->getName() == 'Slideshow')) { require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception('Unknown XML Repsonse Received'); + throw new Zend_Service_SlideShare_Exception( + 'Unknown XML Repsonse Received' + ); } - - $retval = $this->_slideShowNodeToObject(clone $sxe->Slideshow[0]); + $retval = $this->_slideShowNodeToObject(clone $sxe); $cache->save($retval, $cache_key); } @@ -439,9 +470,13 @@ * @param int $limit The maximum number of slide shows to retrieve * @return array An array of Zend_Service_SlideShare_SlideShow objects */ - public function getSlideShowsByUsername($username, $offset = null, $limit = null) + public function getSlideShowsByUsername( + $username, $offset = null, $limit = null + ) { - return $this->_getSlideShowsByType('username_for', $username, $offset, $limit); + return $this->_getSlideShowsByType( + 'username_for', $username, $offset, $limit + ); } /** @@ -455,9 +490,9 @@ public function getSlideShowsByTag($tag, $offset = null, $limit = null) { - if(is_array($tag)) { + if (is_array($tag)) { $tmp = array(); - foreach($tag as $t) { + foreach ($tag as $t) { $tmp[] = "\"$t\""; } @@ -484,33 +519,35 @@ * Retrieves Zend_Service_SlideShare_SlideShow object arrays based on the type of * list desired * - * @param string $key The type of slide show object to retrieve - * @param string $value The specific search query for the slide show type to look up - * @param int $offset The offset of the list to start retrieving from - * @param int $limit The maximum number of slide shows to retrieve + * @param string $key The type of slide show object to retrieve + * @param string $value The specific search query for the slide show type to look up + * @param int $offset The offset of the list to start retrieving from + * @param int $limit The maximum number of slide shows to retrieve * @return array An array of Zend_Service_SlideShare_SlideShow objects + * @throws Zend_Service_SlideShare_Exception */ protected function _getSlideShowsByType($key, $value, $offset = null, $limit = null) { - $key = strtolower($key); - switch($key) { + switch ($key) { case 'username_for': $responseTag = 'User'; - $queryUri = self::SERVICE_GET_SHOW_BY_USER_URI; + $queryUri = self::SERVICE_GET_SHOW_BY_USER_URI; break; case 'group_name': $responseTag = 'Group'; - $queryUri = self::SERVICE_GET_SHOW_BY_GROUP_URI; + $queryUri = self::SERVICE_GET_SHOW_BY_GROUP_URI; break; case 'tag': $responseTag = 'Tag'; - $queryUri = self::SERVICE_GET_SHOW_BY_TAG_URI; + $queryUri = self::SERVICE_GET_SHOW_BY_TAG_URI; break; default: require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception("Invalid SlideShare Query"); + throw new Zend_Service_SlideShare_Exception( + 'Invalid SlideShare Query' + ); } $timestamp = time(); @@ -520,11 +557,11 @@ 'hash' => sha1($this->getSharedSecret().$timestamp), $key => $value); - if($offset !== null) { + if ($offset !== null) { $params['offset'] = (int)$offset; } - if($limit !== null) { + if ($limit !== null) { $params['limit'] = (int)$limit; } @@ -532,8 +569,7 @@ $cache_key = md5($key.$value.$offset.$limit); - if(!$retval = $cache->load($cache_key)) { - + if (!$retval = $cache->load($cache_key)) { $client = $this->getHttpClient(); $client->setUri($queryUri); @@ -542,29 +578,35 @@ require_once 'Zend/Http/Client/Exception.php'; try { $response = $client->request('POST'); - } catch(Zend_Http_Client_Exception $e) { + } catch (Zend_Http_Client_Exception $e) { require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception("Service Request Failed: {$e->getMessage()}", 0, $e); + throw new Zend_Service_SlideShare_Exception( + "Service Request Failed: {$e->getMessage()}", 0, $e + ); } $sxe = simplexml_load_string($response->getBody()); - if($sxe->getName() == "SlideShareServiceError") { + if ($sxe->getName() == "SlideShareServiceError") { $message = (string)$sxe->Message[0]; list($code, $error_str) = explode(':', $message); require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception(trim($error_str), $code); + throw new Zend_Service_SlideShare_Exception( + trim($error_str), $code + ); } - if(!$sxe->getName() == $responseTag) { + if (!$sxe->getName() == $responseTag) { require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception('Unknown or Invalid XML Repsonse Received'); + throw new Zend_Service_SlideShare_Exception( + 'Unknown or Invalid XML Repsonse Received' + ); } $retval = array(); - foreach($sxe->children() as $node) { - if($node->getName() == 'Slideshow') { + foreach ($sxe->children() as $node) { + if ($node->getName() == 'Slideshow') { $retval[] = $this->_slideShowNodeToObject($node); } } @@ -581,12 +623,12 @@ * * @param SimpleXMLElement $node The input XML from the slideshare.net service * @return Zend_Service_SlideShare_SlideShow The resulting object + * @throws Zend_Service_SlideShare_Exception */ protected function _slideShowNodeToObject(SimpleXMLElement $node) { if($node->getName() == 'Slideshow') { - $ss = new Zend_Service_SlideShare_SlideShow(); $ss->setId((string)$node->ID); @@ -597,9 +639,8 @@ $ss->setStatus((string)$node->Status); $ss->setStatusDescription((string)$node->StatusDescription); - foreach(explode(",", (string)$node->Tags) as $tag) { - - if(!in_array($tag, $ss->getTags())) { + foreach (explode(",", (string)$node->Tags) as $tag) { + if (!in_array($tag, $ss->getTags())) { $ss->addTag($tag); } } @@ -610,10 +651,11 @@ $ss->setTranscript((string)$node->Transcript); return $ss; - } require_once 'Zend/Service/SlideShare/Exception.php'; - throw new Zend_Service_SlideShare_Exception("Was not provided the expected XML Node for processing"); + throw new Zend_Service_SlideShare_Exception( + 'Was not provided the expected XML Node for processing' + ); } }