| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 20855 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.service.slideshare">
- <title>Zend_Service_SlideShare</title>
- <para>
- Le composant <classname>Zend_Service_SlideShare</classname> est utilisé dans
- l'interaction avec les services Web de <ulink
- url="http://www.slideshare.net/">slideshare.net</ulink>, 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.
- </para>
- <sect2 id="zend.service.slideshare.basicusage">
- <title>Démarrage avec <classname>Zend_Service_SlideShare</classname></title>
- <para>
- Pour utiliser <classname>Zend_Service_SlideShare</classname>, vous devez créer au
- préalable un compte sur slideshare.net (plus d'informations à ce sujet <ulink
- url="http://www.slideshare.net/developers/">ici</ulink>), afin de recevoir votre clé
- d'API et votre login / mot de passe, indispensables pour utiliser le service Web.
- </para>
- <para>
- Une fois votre compte créé, vous pouvez utiliser
- <classname>Zend_Service_SlideShare</classname> en créant une instance de
- <classname>Zend_Service_SlideShare</classname> en lui passant vos identifiants :
- </para>
- <programlisting language="php"><![CDATA[
- // Crée une instance du composant
- $ss = new Zend_Service_SlideShare('APIKEY',
- 'SHAREDSECRET',
- 'USERNAME',
- 'PASSWORD');
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.service.slideshare.slideshowobj">
- <title>L'objet SlideShow</title>
- <para>
- Chaque diaporama issu de <classname>Zend_Service_SlideShare</classname> est
- matérialisé par un objet <classname>Zend_Service_SlideShare_SlideShow</classname> (que
- ce soit pour uploader ou récupérer des diaporamas). Pour information, voici un pseudo
- code de cette classe :
- </para>
- <programlisting language="php"><![CDATA[
- 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;
- }
- }
- ]]></programlisting>
- <note>
- <para>
- 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.
- </para>
- </note>
- <para>
- Lors de l'utilisation de <classname>Zend_Service_SlideShare</classname>, la classe
- de données Slideshow sera souvent utilisée pour parcourir, ajouter, ou modifier des
- diaporamas.
- </para>
- </sect2>
- <sect2 id="zend.service.slideshare.getslideshow">
- <title>Récupérer un diaporama simplement</title>
- <para>
- La manière la plus simple d'utiliser
- <classname>Zend_Service_SlideShare</classname> est la récupération d'un diaporama depuis
- son ID, fournit par le service slideshare.net, ceci est effectué via la méthode
- <methodname>getSlideShow()</methodname> de l'objet <classname>Zend_Service_SlideShare</classname>.
- Le résultat de cette méthode est un objet de type
- <classname>Zend_Service_SlideShare_SlideShow</classname>.
- </para>
- <programlisting language="php"><![CDATA[
- // 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";
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.service.slideshare.getslideshowlist">
- <title>Récupérer des groupes de diaporamas</title>
- <para>
- 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
- :
- </para>
- <itemizedlist mark="opencircle">
- <listitem>
- <para><emphasis>Diaporamas depuis un compte spécifique</emphasis></para>
- <para>
- La méthode <methodname>getSlideShowsByUsername()</methodname> va retourner tous les
- diaporamas depuis un compte utilisateur.
- </para>
- </listitem>
- <listitem>
- <para><emphasis>Diaporamas contenant des tags spécifiques</emphasis></para>
- <para>
- La méthode <code>getSlideShowsByTag</code> va retourner un ensemble de
- diaporamas comportant certains tags (mots-clés).
- </para>
- </listitem>
- <listitem>
- <para><emphasis>Diaporamas depuis un groupe</emphasis></para>
- <para>
- La méthode <code>getSlideShowsByGroup</code> récupère tous les diaporamas
- d'un groupe donné.
- </para>
- </listitem>
- </itemizedlist>
- <para>Voici un exemple utilisant les méthodes décrites ci-dessus :</para>
- <programlisting language="php"><![CDATA[
- // 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";
- }
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.service.slideshare.caching">
- <title>Politique de cache de <classname>Zend_Service_SlideShare</classname></title>
- <para>
- Par défaut, <classname>Zend_Service_SlideShare</classname> va mettre en cache
- toute requête concernant le service Web, dans le système de fichier (par défaut :
- <code>/tmp</code>), ceci pour une durée de 12 heures. Si vous voulez changer ce
- comportement, vous devez passer votre propre objet <xref linkend="zend.cache" /> en
- utilisant la méthode <code>setCacheObject</code> :
- </para>
- <programlisting language="php"><![CDATA[
- $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);
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.service.slideshare.httpclient">
- <title>Changer le comportement du client HTTP</title>
- <para>
- Si pour une raison quelconque vous souhaitez changer le comportement de l'objet
- client <acronym>HTTP</acronym> utilisé pour interroger le service Web, vous pouvez créer votre propre
- instance de <classname>Zend_Http_Client</classname> (voyez <xref
- linkend="zend.http" />). Ceci peut être utile par exemple pour spécifier un timeout ou
- toute autre chose :
- </para>
- <programlisting language="php"><![CDATA[
- $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);
- ]]></programlisting>
- </sect2>
- </sect1>
|