1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 20855 -->
4 <sect1 id="zend.service.slideshare">
5 <title>Zend_Service_SlideShare</title>
8 Le composant <classname>Zend_Service_SlideShare</classname> est utilisé dans
9 l'interaction avec les services Web de <ulink
10 url="http://www.slideshare.net/">slideshare.net</ulink>, plate-forme servant d'hébergement
11 de diaporamas. Grâce à ce composant, vous pouvez intégrer des diaporamas de Slideshare, dans
12 votre propre site Web, ou même uploader des nouveaux diaporamas sur votre compte Slideshare,
13 depuis votre site Web.
16 <sect2 id="zend.service.slideshare.basicusage">
17 <title>Démarrage avec <classname>Zend_Service_SlideShare</classname></title>
20 Pour utiliser <classname>Zend_Service_SlideShare</classname>, vous devez créer au
21 préalable un compte sur slideshare.net (plus d'informations à ce sujet <ulink
22 url="http://www.slideshare.net/developers/">ici</ulink>), afin de recevoir votre clé
23 d'API et votre login / mot de passe, indispensables pour utiliser le service Web.
27 Une fois votre compte créé, vous pouvez utiliser
28 <classname>Zend_Service_SlideShare</classname> en créant une instance de
29 <classname>Zend_Service_SlideShare</classname> en lui passant vos identifiants :
32 <programlisting language="php"><![CDATA[
33 // Crée une instance du composant
34 $ss = new Zend_Service_SlideShare('APIKEY',
41 <sect2 id="zend.service.slideshare.slideshowobj">
42 <title>L'objet SlideShow</title>
45 Chaque diaporama issu de <classname>Zend_Service_SlideShare</classname> est
46 matérialisé par un objet <classname>Zend_Service_SlideShare_SlideShow</classname> (que
47 ce soit pour uploader ou récupérer des diaporamas). Pour information, voici un pseudo
48 code de cette classe :
51 <programlisting language="php"><![CDATA[
52 class Zend_Service_SlideShare_SlideShow {
55 * Récupère l'emplacement du diaporama
57 public function getLocation() {
58 return $this->_location;
62 * Récupère la transcription du diaporama
64 public function getTranscript() {
65 return $this->_transcript;
69 * Associe un mot-clé au diaporama
71 public function addTag($tag) {
72 $this->_tags[] = (string)$tag;
77 * Associe des mots-clés au diaporama
79 public function setTags(Array $tags) {
85 * Récupère tous les mots-clés associés au diaporama
87 public function getTags() {
92 * Règle le nom de fichier du diaporama dans le système
93 * de fichiers local (pour l'upload d'un nouveau diaporama)
95 public function setFilename($file) {
96 $this->_slideShowFilename = (string)$file;
101 * Rècupère le nom de fichier du diaporama dans le système
102 * de fichiers local qui sera uploadé
104 public function getFilename() {
105 return $this->_slideShowFilename;
109 * Récupère l'ID du diaporama
111 public function getId() {
112 return $this->_slideShowId;
116 * Récupère le code HTML utilisé pour la projection du diaporama
118 public function getEmbedCode() {
119 return $this->_embedCode;
123 * Récupère l'URI de la vignette du diaporama
125 public function getThumbnailUrl() {
126 return $this->_thumbnailUrl;
130 * Règle le titre du diaporama
132 public function setTitle($title) {
133 $this->_title = (string)$title;
138 * Récupère le titre du diaporama
140 public function getTitle() {
141 return $this->_title;
145 * Régle la description du diaporama
147 public function setDescription($desc) {
148 $this->_description = (string)$desc;
153 * Récupère la description du diaporama
155 public function getDescription() {
156 return $this->_description;
160 * Récupère le statut (numérique) du diaporama sur le serveur
162 public function getStatus() {
163 return $this->_status;
167 * Récupère la description textuelle du statut du diaporama
170 public function getStatusDescription() {
171 return $this->_statusDescription;
175 * Récupère le lien permanent du diaporama
177 public function getPermaLink() {
178 return $this->_permalink;
182 * Récupère le nombre de diapositives que le diaporama comprend
184 public function getNumViews() {
185 return $this->_numViews;
192 La classe présentée ci dessus ne montre que les méthodes qui sont sensées être
193 utilisées par les développeurs. D'autres méthodes internes au composant
199 Lors de l'utilisation de <classname>Zend_Service_SlideShare</classname>, la classe
200 de données Slideshow sera souvent utilisée pour parcourir, ajouter, ou modifier des
205 <sect2 id="zend.service.slideshare.getslideshow">
206 <title>Récupérer un diaporama simplement</title>
209 La manière la plus simple d'utiliser
210 <classname>Zend_Service_SlideShare</classname> est la récupération d'un diaporama depuis
211 son ID, fournit par le service slideshare.net, ceci est effectué via la méthode
212 <methodname>getSlideShow()</methodname> de l'objet <classname>Zend_Service_SlideShare</classname>.
213 Le résultat de cette méthode est un objet de type
214 <classname>Zend_Service_SlideShare_SlideShow</classname>.
217 <programlisting language="php"><![CDATA[
218 // Création d'une instance du composant
219 $ss = new Zend_Service_SlideShare('APIKEY',
224 $slideshow = $ss->getSlideShow(123456);
226 print "Titre du diaporama : {$slideshow->getTitle()}<br/>\n";
227 print "Nombre de diapositives : {$slideshow->getNumViews()}<br/>\n";
231 <sect2 id="zend.service.slideshare.getslideshowlist">
232 <title>Récupérer des groupes de diaporamas</title>
235 Si vous ne connaissez pas l'ID spécifique d'un diaporama vous intéressant, il est
236 possible de récupérer des groupes de diaporamas, en utilisant une de ces trois méthodes
240 <itemizedlist mark="opencircle">
242 <para><emphasis>Diaporamas depuis un compte spécifique</emphasis></para>
245 La méthode <methodname>getSlideShowsByUsername()</methodname> va retourner tous les
246 diaporamas depuis un compte utilisateur.
251 <para><emphasis>Diaporamas contenant des tags spécifiques</emphasis></para>
254 La méthode <code>getSlideShowsByTag</code> va retourner un ensemble de
255 diaporamas comportant certains tags (mots-clés).
260 <para><emphasis>Diaporamas depuis un groupe</emphasis></para>
263 La méthode <code>getSlideShowsByGroup</code> récupère tous les diaporamas
269 <para>Voici un exemple utilisant les méthodes décrites ci-dessus :</para>
271 <programlisting language="php"><![CDATA[
272 // Crée une nouvelle instance du composant
273 $ss = new Zend_Service_SlideShare('APIKEY',
278 $starting_offset = 0;
281 // Récupère les 10 premiers de chaque type
282 $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
283 $ss_tags = $ss->getSlideShowsByTag('zend', $starting_offset, $limit);
284 $ss_group = $ss->getSlideShowsByGroup('mygroup', $starting_offset, $limit);
286 // Itère sur les diaporamas
287 foreach($ss_user as $slideshow) {
288 print "Titre du diaporama : {$slideshow->getTitle}<br/>\n";
293 <sect2 id="zend.service.slideshare.caching">
294 <title>Politique de cache de <classname>Zend_Service_SlideShare</classname></title>
297 Par défaut, <classname>Zend_Service_SlideShare</classname> va mettre en cache
298 toute requête concernant le service Web, dans le système de fichier (par défaut :
299 <code>/tmp</code>), ceci pour une durée de 12 heures. Si vous voulez changer ce
300 comportement, vous devez passer votre propre objet <xref linkend="zend.cache" /> en
301 utilisant la méthode <code>setCacheObject</code> :
304 <programlisting language="php"><![CDATA[
305 $frontendOptions = array(
307 'automatic_serialization' => true);
308 $backendOptions = array(
309 'cache_dir' => '/webtmp/');
311 $cache = Zend_Cache::factory('Core',
316 $ss = new Zend_Service_SlideShare('APIKEY',
320 $ss->setCacheObject($cache);
322 $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
326 <sect2 id="zend.service.slideshare.httpclient">
327 <title>Changer le comportement du client HTTP</title>
330 Si pour une raison quelconque vous souhaitez changer le comportement de l'objet
331 client <acronym>HTTP</acronym> utilisé pour interroger le service Web, vous pouvez créer votre propre
332 instance de <classname>Zend_Http_Client</classname> (voyez <xref
333 linkend="zend.http" />). Ceci peut être utile par exemple pour spécifier un timeout ou
337 <programlisting language="php"><![CDATA[
338 $client = new Zend_Http_Client();
339 $client->setConfig(array('timeout' => 5));
341 $ss = new Zend_Service_SlideShare('APIKEY',
345 $ss->setHttpClient($client);
346 $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);