|
|
@@ -49,7 +49,6 @@ require_once 'Zend/Service/SlideShare/SlideShow.php';
|
|
|
*/
|
|
|
class Zend_Service_SlideShare
|
|
|
{
|
|
|
-
|
|
|
/**
|
|
|
* Web service result code mapping
|
|
|
*/
|
|
|
@@ -71,17 +70,17 @@ class Zend_Service_SlideShare
|
|
|
/**
|
|
|
* 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 @@ class Zend_Service_SlideShare
|
|
|
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 @@ class Zend_Service_SlideShare
|
|
|
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 @@ class Zend_Service_SlideShare
|
|
|
/**
|
|
|
* 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 @@ class Zend_Service_SlideShare
|
|
|
/**
|
|
|
* 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 @@ class Zend_Service_SlideShare
|
|
|
$params['slideshow_tags'] = "";
|
|
|
}
|
|
|
|
|
|
-
|
|
|
$client = $this->getHttpClient();
|
|
|
$client->setUri(self::SERVICE_UPLOAD_URI);
|
|
|
$client->setParameterPost($params);
|
|
|
@@ -352,23 +369,29 @@ class Zend_Service_SlideShare
|
|
|
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 @@ class Zend_Service_SlideShare
|
|
|
*
|
|
|
* @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 @@ class Zend_Service_SlideShare
|
|
|
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 @@ class Zend_Service_SlideShare
|
|
|
* @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 @@ class Zend_Service_SlideShare
|
|
|
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 @@ class Zend_Service_SlideShare
|
|
|
* 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 @@ class Zend_Service_SlideShare
|
|
|
'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 @@ class Zend_Service_SlideShare
|
|
|
|
|
|
$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 @@ class Zend_Service_SlideShare
|
|
|
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 @@ class Zend_Service_SlideShare
|
|
|
*
|
|
|
* @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 @@ class Zend_Service_SlideShare
|
|
|
$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 @@ class Zend_Service_SlideShare
|
|
|
$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'
|
|
|
+ );
|
|
|
}
|
|
|
}
|