[ZF-10089] Zend_Log
[zend.git] / documentation / manual / fr / module_specs / Zend_Service_SlideShare.xml
blobdf63fb8b0cb4666b06d485c1bf82fb4e62aa1234
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 20855 -->
3 <!-- Reviewed: no -->
4 <sect1 id="zend.service.slideshare">
5     <title>Zend_Service_SlideShare</title>
7     <para>
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.
14     </para>
16     <sect2 id="zend.service.slideshare.basicusage">
17         <title>Démarrage avec <classname>Zend_Service_SlideShare</classname></title>
19         <para>
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.
24         </para>
26         <para>
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 :
30         </para>
32         <programlisting language="php"><![CDATA[
33 // Crée une instance du composant
34 $ss = new Zend_Service_SlideShare('APIKEY',
35                                   'SHAREDSECRET',
36                                   'USERNAME',
37                                   'PASSWORD');
38 ]]></programlisting>
39     </sect2>
41     <sect2 id="zend.service.slideshare.slideshowobj">
42         <title>L'objet SlideShow</title>
44         <para>
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 :
49         </para>
51         <programlisting language="php"><![CDATA[
52 class Zend_Service_SlideShare_SlideShow {
54     /**
55      * Récupère l'emplacement du diaporama
56      */
57     public function getLocation() {
58         return $this->_location;
59     }
61     /**
62      * Récupère la transcription du diaporama
63      */
64     public function getTranscript() {
65         return $this->_transcript;
66     }
68     /**
69      * Associe un mot-clé au diaporama
70      */
71     public function addTag($tag) {
72         $this->_tags[] = (string)$tag;
73         return $this;
74     }
76     /**
77      * Associe des mots-clés au diaporama
78      */
79     public function setTags(Array $tags) {
80         $this->_tags = $tags;
81         return $this;
82     }
84     /**
85      * Récupère tous les mots-clés associés au diaporama
86      */
87     public function getTags() {
88         return $this->_tags;
89     }
91     /**
92      * Règle le nom de fichier du diaporama dans le système
93      * de fichiers local (pour l'upload d'un nouveau diaporama)
94      */
95     public function setFilename($file) {
96         $this->_slideShowFilename = (string)$file;
97         return $this;
98     }
100     /**
101      * Rècupère le nom de fichier du diaporama dans le système
102      * de fichiers local qui sera uploadé
103      */
104     public function getFilename() {
105         return $this->_slideShowFilename;
106     }
108     /**
109      * Récupère l'ID du diaporama
110      */
111     public function getId() {
112         return $this->_slideShowId;
113     }
115     /**
116      * Récupère le code HTML utilisé pour la projection du diaporama
117      */
118     public function getEmbedCode() {
119         return $this->_embedCode;
120     }
122     /**
123      * Récupère l'URI de la vignette du diaporama
124      */
125     public function getThumbnailUrl() {
126         return $this->_thumbnailUrl;
127     }
129     /**
130      * Règle le titre du diaporama
131      */
132     public function setTitle($title) {
133         $this->_title = (string)$title;
134         return $this;
135     }
137     /**
138      * Récupère le titre du diaporama
139      */
140     public function getTitle() {
141         return $this->_title;
142     }
144     /**
145      * Régle la description du diaporama
146      */
147     public function setDescription($desc) {
148         $this->_description = (string)$desc;
149         return $this;
150     }
152     /**
153      * Récupère la description du diaporama
154      */
155     public function getDescription() {
156         return $this->_description;
157     }
159     /**
160      * Récupère le statut (numérique) du diaporama sur le serveur
161      */
162     public function getStatus() {
163         return $this->_status;
164     }
166     /**
167      * Récupère la description textuelle du statut du diaporama
168      * sur le serveur
169      */
170     public function getStatusDescription() {
171         return $this->_statusDescription;
172     }
174     /**
175      * Récupère le lien permanent du diaporama
176      */
177     public function getPermaLink() {
178         return $this->_permalink;
179     }
181     /**
182      * Récupère le nombre de diapositives que le diaporama comprend
183      */
184     public function getNumViews() {
185         return $this->_numViews;
186     }
188 ]]></programlisting>
190         <note>
191             <para>
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
194                 existent.
195             </para>
196         </note>
198         <para>
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
201             diaporamas.
202         </para>
203     </sect2>
205     <sect2 id="zend.service.slideshare.getslideshow">
206         <title>Récupérer un diaporama simplement</title>
208         <para>
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>.
215         </para>
217         <programlisting language="php"><![CDATA[
218 // Création d'une instance du composant
219 $ss = new Zend_Service_SlideShare('APIKEY',
220                                   'SHAREDSECRET',
221                                   'USERNAME',
222                                   'PASSWORD');
224 $slideshow = $ss->getSlideShow(123456);
226 print "Titre du diaporama : {$slideshow->getTitle()}<br/>\n";
227 print "Nombre de diapositives : {$slideshow->getNumViews()}<br/>\n";
228 ]]></programlisting>
229     </sect2>
231     <sect2 id="zend.service.slideshare.getslideshowlist">
232         <title>Récupérer des groupes de diaporamas</title>
234         <para>
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
237             :
238         </para>
240         <itemizedlist mark="opencircle">
241             <listitem>
242                 <para><emphasis>Diaporamas depuis un compte spécifique</emphasis></para>
244                 <para>
245                     La méthode <methodname>getSlideShowsByUsername()</methodname> va retourner tous les
246                     diaporamas depuis un compte utilisateur.
247                 </para>
248             </listitem>
250             <listitem>
251                 <para><emphasis>Diaporamas contenant des tags spécifiques</emphasis></para>
253                 <para>
254                     La méthode <code>getSlideShowsByTag</code> va retourner un ensemble de
255                     diaporamas comportant certains tags (mots-clés).
256                 </para>
257             </listitem>
259             <listitem>
260                 <para><emphasis>Diaporamas depuis un groupe</emphasis></para>
262                 <para>
263                     La méthode <code>getSlideShowsByGroup</code> récupère tous les diaporamas
264                     d'un groupe donné.
265                 </para>
266             </listitem>
267         </itemizedlist>
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',
274                                   'SHAREDSECRET',
275                                   'USERNAME',
276                                   'PASSWORD');
278 $starting_offset = 0;
279 $limit = 10;
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";
290 ]]></programlisting>
291     </sect2>
293     <sect2 id="zend.service.slideshare.caching">
294         <title>Politique de cache de <classname>Zend_Service_SlideShare</classname></title>
296         <para>
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> :
302         </para>
304         <programlisting language="php"><![CDATA[
305 $frontendOptions = array(
306                         'lifetime' => 7200,
307                         'automatic_serialization' => true);
308 $backendOptions  = array(
309                         'cache_dir' => '/webtmp/');
311 $cache = Zend_Cache::factory('Core',
312                              'File',
313                              $frontendOptions,
314                              $backendOptions);
316 $ss = new Zend_Service_SlideShare('APIKEY',
317                                   'SHAREDSECRET',
318                                   'USERNAME',
319                                   'PASSWORD');
320 $ss->setCacheObject($cache);
322 $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
323 ]]></programlisting>
324     </sect2>
326     <sect2 id="zend.service.slideshare.httpclient">
327         <title>Changer le comportement du client HTTP</title>
329         <para>
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
334             toute autre chose :
335         </para>
337         <programlisting language="php"><![CDATA[
338 $client = new Zend_Http_Client();
339 $client->setConfig(array('timeout' => 5));
341 $ss = new Zend_Service_SlideShare('APIKEY',
342                                   'SHAREDSECRET',
343                                   'USERNAME',
344                                   'PASSWORD');
345 $ss->setHttpClient($client);
346 $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
347 ]]></programlisting>
348     </sect2>
349 </sect1>