Le composant Zend_Service_SlideShare
est utilisé dans
l'interaction avec les services Web de slideshare.net, plate-forme servant d'hébergement
de diaporamas. Grâce à ce composant, vous pouvez intégrer des diaporamas de Slideshare, dans
votre propre site Web, ou même uploader des nouveaux diaporamas sur votre compte Slideshare,
depuis votre site Web.
Pour utiliser Zend_Service_SlideShare
, vous devez créer au
préalable un compte sur slideshare.net (plus d'informations à ce sujet ici), afin de recevoir votre clé
d'API et votre login / mot de passe, indispensables pour utiliser le service Web.
Une fois votre compte créé, vous pouvez utiliser
Zend_Service_SlideShare
en créant une instance de
Zend_Service_SlideShare
en lui passant vos identifiants :
// Crée une instance du composant $ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD');
Chaque diaporama issu de Zend_Service_SlideShare
est
matérialisé par un objet Zend_Service_SlideShare_SlideShow
(que
ce soit pour uploader ou récupérer des diaporamas). Pour information, voici un pseudo
code de cette classe :
class Zend_Service_SlideShare_SlideShow { /** * Récupère l'emplacement du diaporama */ public function getLocation() { return $this->_location; } /** * Récupère la transcription du diaporama */ public function getTranscript() { return $this->_transcript; } /** * Associe un mot-clé au diaporama */ public function addTag($tag) { $this->_tags[] = (string)$tag; return $this; } /** * Associe des mots-clés au diaporama */ public function setTags(Array $tags) { $this->_tags = $tags; return $this; } /** * Récupère tous les mots-clés associés au diaporama */ public function getTags() { return $this->_tags; } /** * Règle le nom de fichier du diaporama dans le système * de fichiers local (pour l'upload d'un nouveau diaporama) */ public function setFilename($file) { $this->_slideShowFilename = (string)$file; return $this; } /** * Rècupère le nom de fichier du diaporama dans le système * de fichiers local qui sera uploadé */ public function getFilename() { return $this->_slideShowFilename; } /** * Récupère l'ID du diaporama */ public function getId() { return $this->_slideShowId; } /** * Récupère le code HTML utilisé pour la projection du diaporama */ public function getEmbedCode() { return $this->_embedCode; } /** * Récupère l'URI de la vignette du diaporama */ public function getThumbnailUrl() { return $this->_thumbnailUrl; } /** * Règle le titre du diaporama */ public function setTitle($title) { $this->_title = (string)$title; return $this; } /** * Récupère le titre du diaporama */ public function getTitle() { return $this->_title; } /** * Régle la description du diaporama */ public function setDescription($desc) { $this->_description = (string)$desc; return $this; } /** * Récupère la description du diaporama */ public function getDescription() { return $this->_description; } /** * Récupère le statut (numérique) du diaporama sur le serveur */ public function getStatus() { return $this->_status; } /** * Récupère la description textuelle du statut du diaporama * sur le serveur */ public function getStatusDescription() { return $this->_statusDescription; } /** * Récupère le lien permanent du diaporama */ public function getPermaLink() { return $this->_permalink; } /** * Récupère le nombre de diapositives que le diaporama comprend */ public function getNumViews() { return $this->_numViews; } }
Note
La classe présentée ci dessus ne montre que les méthodes qui sont sensées être utilisées par les développeurs. D'autres méthodes internes au composant existent.
Lors de l'utilisation de Zend_Service_SlideShare
, la classe
de données Slideshow sera souvent utilisée pour parcourir, ajouter, ou modifier des
diaporamas.
La manière la plus simple d'utiliser
Zend_Service_SlideShare
est la récupération d'un diaporama depuis
son ID, fournit par le service slideshare.net, ceci est effectué via la méthode
getSlideShow()
de l'objet Zend_Service_SlideShare
.
Le résultat de cette méthode est un objet de type
Zend_Service_SlideShare_SlideShow
.
// Création d'une instance du composant $ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD'); $slideshow = $ss->getSlideShow(123456); print "Titre du diaporama : {$slideshow->getTitle()}<br/>\n"; print "Nombre de diapositives : {$slideshow->getNumViews()}<br/>\n";
Si vous ne connaissez pas l'ID spécifique d'un diaporama vous intéressant, il est possible de récupérer des groupes de diaporamas, en utilisant une de ces trois méthodes :
-
Diaporamas depuis un compte spécifique
La méthode
getSlideShowsByUsername()
va retourner tous les diaporamas depuis un compte utilisateur. -
Diaporamas contenant des tags spécifiques
La méthode
getSlideShowsByTag
va retourner un ensemble de diaporamas comportant certains tags (mots-clés). -
Diaporamas depuis un groupe
La méthode
getSlideShowsByGroup
récupère tous les diaporamas d'un groupe donné.
Voici un exemple utilisant les méthodes décrites ci-dessus :
// Crée une nouvelle instance du composant $ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD'); $starting_offset = 0; $limit = 10; // Récupère les 10 premiers de chaque type $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit); $ss_tags = $ss->getSlideShowsByTag('zend', $starting_offset, $limit); $ss_group = $ss->getSlideShowsByGroup('mygroup', $starting_offset, $limit); // Itère sur les diaporamas foreach($ss_user as $slideshow) { print "Titre du diaporama : {$slideshow->getTitle}<br/>\n"; }
Par défaut, Zend_Service_SlideShare
va mettre en cache
toute requête concernant le service Web, dans le système de fichier (par défaut :
/tmp
), ceci pour une durée de 12 heures. Si vous voulez changer ce
comportement, vous devez passer votre propre objet Zend_Cache en
utilisant la méthode setCacheObject
:
$frontendOptions = array( 'lifetime' => 7200, 'automatic_serialization' => true); $backendOptions = array( 'cache_dir' => '/webtmp/'); $cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions); $ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD'); $ss->setCacheObject($cache); $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
Si pour une raison quelconque vous souhaitez changer le comportement de l'objet
client HTTP utilisé pour interroger le service Web, vous pouvez créer votre propre
instance de Zend_Http_Client
(voyez Zend_Http). Ceci peut être utile par exemple pour spécifier un timeout ou
toute autre chose :
$client = new Zend_Http_Client(); $client->setConfig(array('timeout' => 5)); $ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD'); $ss->setHttpClient($client); $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);