Zend_Service_SlideShare 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. Démarrage avec <classname>Zend_Service_SlideShare</classname> 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 : L'objet SlideShow 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 : _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; } } ]]> 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. Récupérer un diaporama simplement 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. getSlideShow(123456); print "Titre du diaporama : {$slideshow->getTitle()}
\n"; print "Nombre de diapositives : {$slideshow->getNumViews()}
\n"; ]]>
Récupérer des groupes de diaporamas 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 : 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}
\n"; } ]]>
Politique de cache de <classname>Zend_Service_SlideShare</classname> 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 en utilisant la méthode setCacheObject : 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); ]]> Changer le comportement du client HTTP 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 ). Ceci peut être utile par exemple pour spécifier un timeout ou toute autre chose : setConfig(array('timeout' => 5)); $ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD'); $ss->setHttpClient($client); $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit); ]]>