Zend_Service_SlideShare.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15234 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.service.slideshare">
  5. <title>Einführung</title>
  6. <para>
  7. Die <classname>Zend_Service_SlideShare</classname> wird verwendet um mit dem
  8. <ulink url="http://www.slideshare.net/">slideshare.net</ulink> Web Service für das
  9. Online-Hosten von Slideshows zu interagieren. Mit dieser Komponente kann eine Slideshow
  10. die in dieser Website gehostet wird in einer Website eingebettet und sogar neue
  11. Slideshows zum eigenen Account hochgeladen werden.
  12. </para>
  13. <sect2 id="zend.service.slideshare.basicusage">
  14. <title>Mit Zend_Service_SlideShare beginnen</title>
  15. <para>
  16. Um die <classname>Zend_Service_SlideShare</classname> Komponente zu verwenden muß zuerst ein Account auf
  17. den slideshare.net Servern erstellt werden (mehr Informationen können
  18. <ulink url="http://www.slideshare.net/developers/">hier</ulink> gefunden werden) um
  19. einen API Schlüssel, Benutzername, Passwort und einen geteilten geheimen Wert zu
  20. erhalten -- diese werden alle benötigt um die <classname>Zend_Service_SlideShare</classname>
  21. Komponente zu verwenden.
  22. </para>
  23. <para>
  24. Sobald ein Account erstellt wurde, kann die <classname>Zend_Service_SlideShare</classname>
  25. Komponente verwendet werden durch die Erstellung eines
  26. <classname>Zend_Service_SlideShare</classname> Objektes und dem anbieten dieser Werte wie
  27. anbei gezeigt:
  28. </para>
  29. <programlisting role="php"><![CDATA[
  30. // Erstellt eine neue Instanz der Komponente
  31. $ss = new Zend_Service_SlideShare('APIKEY',
  32. 'SHAREDSECRET',
  33. 'USERNAME',
  34. 'PASSWORD');
  35. ]]></programlisting>
  36. </sect2>
  37. <sect2 id="zend.service.slideshare.slideshowobj">
  38. <title>Das SlideShow Objekt</title>
  39. <para>
  40. Alle Slideshows in der <classname>Zend_Service_SlideShare</classname> werden repräsentiert durch
  41. die Verwendung des <classname>Zend_Service_SlideShare_SlideShow</classname> Objektes (sowohl beim
  42. Empfangen als auch beim Hochladen neuer Slideshows). Zur Referenz ist eine Pseudo-Code
  43. Version dieser Klasse anbei zu sehen.
  44. </para>
  45. <programlisting role="php"><![CDATA[
  46. class Zend_Service_SlideShare_SlideShow {
  47. /**
  48. * Empfängt den Ort der Slideshow
  49. */
  50. public function getLocation() {
  51. return $this->_location;
  52. }
  53. /**
  54. * Erhält das Transcript für die Slideshow
  55. */
  56. public function getTranscript() {
  57. return $this->_transcript;
  58. }
  59. /**
  60. * Fügt ein Tag zu der Slideshow hinzu
  61. */
  62. public function addTag($tag) {
  63. $this->_tags[] = (string)$tag;
  64. return $this;
  65. }
  66. /**
  67. * Setzt die Tags für die Slideshow
  68. */
  69. public function setTags(Array $tags) {
  70. $this->_tags = $tags;
  71. return $this;
  72. }
  73. /**
  74. * Erhält alle Tags die mit der Slideshow assoziiert sind
  75. */
  76. public function getTags() {
  77. return $this->_tags;
  78. }
  79. /**
  80. * Setzt den Dateinamen im Lokalen Filesystem der Slideshow
  81. * (für das Hochladen einer neuen Slideshow)
  82. */
  83. public function setFilename($file) {
  84. $this->_slideShowFilename = (string)$file;
  85. return $this;
  86. }
  87. /**
  88. * Empfängt den Dateinamen auf dem lokalen Dateisystem der Slideshow
  89. * die hochgeladen werden soll
  90. */
  91. public function getFilename() {
  92. return $this->_slideShowFilename;
  93. }
  94. /**
  95. * Empfängt die ID für die Slideshow
  96. */
  97. public function getId() {
  98. return $this->_slideShowId;
  99. }
  100. /**
  101. * Empfängt den eingebetteten HTML Code für die Slideshow
  102. */
  103. public function getEmbedCode() {
  104. return $this->_embedCode;
  105. }
  106. /**
  107. * Empfängt die Thumbnail URi für die Slideshow
  108. */
  109. public function getThumbnailUrl() {
  110. return $this->_thumbnailUrl;
  111. }
  112. /**
  113. * Setzt den Titel für die Slideshow
  114. */
  115. public function setTitle($title) {
  116. $this->_title = (string)$title;
  117. return $this;
  118. }
  119. /**
  120. * Empfängt den Titel der Slideshow
  121. */
  122. public function getTitle() {
  123. return $this->_title;
  124. }
  125. /**
  126. * Setzt die Beschreibung für die Slideshow
  127. */
  128. public function setDescription($desc) {
  129. $this->_description = (string)$desc;
  130. return $this;
  131. }
  132. /**
  133. * Empfängt die Beschreibung der Slideshow
  134. */
  135. public function getDescription() {
  136. return $this->_description;
  137. }
  138. /**
  139. * Erhält den nummerischen Status der Slideshow auf dem Server
  140. */
  141. public function getStatus() {
  142. return $this->_status;
  143. }
  144. /**
  145. * Erhält die textuelle Beschreibung des Status der Slideshow
  146. * auf dem Server
  147. */
  148. public function getStatusDescription() {
  149. return $this->_statusDescription;
  150. }
  151. /**
  152. * Erhält den permanenten Link der Slideshow
  153. */
  154. public function getPermaLink() {
  155. return $this->_permalink;
  156. }
  157. /**
  158. * Erhält die Anzahl der Aufrufe der Slideshow
  159. */
  160. public function getNumViews() {
  161. return $this->_numViews;
  162. }
  163. }
  164. ]]></programlisting>
  165. <note>
  166. <para>
  167. Die obige Pseudo-Klasse zeigt nur die Methoden welche von End-Benutzer
  168. Entwicklern verwendet werden sollten. Andere vorhandene Methoden sind
  169. intern für die Komponente.
  170. </para>
  171. </note>
  172. <para>
  173. Wenn die <classname>Zend_Service_SlideShare</classname> Komponente verwendet wird, wird
  174. diese Daten Klasse sehr oft verwendet um nachzusehen oder neue Slideshows zu oder
  175. von einem Webservice hinzuzufügen.
  176. </para>
  177. </sect2>
  178. <sect2 id="zend.service.slideshare.getslideshow">
  179. <title>Empfangen einer einzelnen Slideshow</title>
  180. <para>
  181. Die einfachste Verwendung der <classname>Zend_Service_SlideShare</classname> Komponente ist
  182. der Empfang einer einzelnen Slideshow durch die Slideshow ID die von der
  183. slideshare.net Anwendung angeboten wird und kann durch den Aufruf der
  184. <code>getSlideShow()</code> auf einem <classname>Zend_Service_SlideShare</classname> Objekt
  185. und der Verwendung des resultierenden <classname>Zend_Service_SlideShare_SlideShow</classname>
  186. Objektes wie gezeigt durchgeführt werden.
  187. </para>
  188. <programlisting role="php"><![CDATA[
  189. // Erstellt eine neue Instanz der Komponente
  190. $ss = new Zend_Service_SlideShare('APIKEY',
  191. 'SHAREDSECRET',
  192. 'USERNAME',
  193. 'PASSWORD');
  194. $slideshow = $ss->getSlideShow(123456);
  195. print "Slide Show Titel: {$slideshow->getTitle()}<br/>\n";
  196. print "Anzahl an Besuchen: {$slideshow->getNumViews()}<br/>\n";
  197. ]]></programlisting>
  198. </sect2>
  199. <sect2 id="zend.service.slideshare.getslideshowlist">
  200. <title>Empfangen von Gruppen von Slideshows</title>
  201. <para>
  202. Wenn die spezielle ID einer Slideshow die einen interessiert und die man empfangen will
  203. nicht kennt, kann man auch Gruppen von Slideshows empfangen durch Verwendung einer der
  204. drei Methoden:
  205. </para>
  206. <itemizedlist mark="opencircle">
  207. <listitem>
  208. <para>
  209. <emphasis role="strong">Slideshows von einem speziellen Account</emphasis>
  210. </para>
  211. <para>
  212. Slideshows können von einem speziellen Account empfangen werden durch
  213. Verwendung der <code>getSlideShowsByUsername()</code> Methode und der
  214. Angabe des Benutzernamens von dem die Slideshow empfangen werden soll
  215. </para>
  216. </listitem>
  217. <listitem>
  218. <para>
  219. <emphasis role="strong">Slideshows mit einem speziellen Tag</emphasis>
  220. </para>
  221. <para>
  222. Slideshows können empfangen werden wenn Sie ein oder mehrere spezielle Tags
  223. enthalten durch die Verwendung der <code>getSlideShowsByTag</code> Methode und
  224. und der Angabe von ein oder mehreren Tags welche der Slideshow zugeordnet sein
  225. müssen um Sie zu empfangen
  226. </para>
  227. </listitem>
  228. <listitem>
  229. <para>
  230. <emphasis role="strong">Slideshows durch Gruppen</emphasis>
  231. </para>
  232. <para>
  233. Man kann Slideshows empfangen welche Mitglied einer speziellen Gruppe sind
  234. durch Verwendung der <code>getSlideShowsByGroup</code> Methode und der
  235. angabe des Namens der Gruppe welcher die Slideshow angehören muß um Sie zu
  236. empfangen
  237. </para>
  238. </listitem>
  239. </itemizedlist>
  240. <para>
  241. Jede der obigen Methoden des empfangens mehrerer Slideshows zeigt das ein ähnlicher
  242. Ansatz verwendet wird. Ein Beispiel der Verwendung jeder Methode wird anbei gezeigt:
  243. </para>
  244. <programlisting role="php"><![CDATA[
  245. // Erstellt eine neue Instanz der Komponente
  246. $ss = new Zend_Service_SlideShare('APIKEY',
  247. 'SHAREDSECRET',
  248. 'USERNAME',
  249. 'PASSWORD');
  250. $starting_offset = 0;
  251. $limit = 10;
  252. // Empfängt die ersten 10 jeden Typs
  253. $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
  254. $ss_tags = $ss->getSlideShowsByTag('zend', $starting_offset, $limit);
  255. $ss_group = $ss->getSlideShowsByGroup('mygroup', $starting_offset, $limit);
  256. // Durch die Slideshows iterieren
  257. foreach($ss_user as $slideshow) {
  258. print "Slide Show Titel: {$slideshow->getTitle}<br/>\n";
  259. }
  260. ]]></programlisting>
  261. </sect2>
  262. <sect2 id="zend.service.slideshare.caching">
  263. <title>Zend_Service_SlideShare Caching Policy</title>
  264. <para>
  265. Standardmäßig cached <classname>Zend_Service_SlideShare</classname> jede Anfrage an den
  266. Webservice automatisch in das Dateisystem (Standardpfad <code>/tmp</code>) für
  267. 12 Stunden. Wenn man das Verhalten ändern will, muß eine eigenes
  268. <xref linkend="zend.cache" /> Objekt durch Verwendung der <code>setCacheObject</code>
  269. Methode angegeben werden wie anbei gezeigt:
  270. </para>
  271. <programlisting role="php"><![CDATA[
  272. $frontendOptions = array(
  273. 'lifetime' => 7200,
  274. 'automatic_serialization' => true);
  275. $backendOptions = array(
  276. 'cache_dir' => '/webtmp/');
  277. $cache = Zend_Cache::factory('Core',
  278. 'File',
  279. $frontendOptions,
  280. $backendOptions);
  281. $ss = new Zend_Service_SlideShare('APIKEY',
  282. 'SHAREDSECRET',
  283. 'USERNAME',
  284. 'PASSWORD');
  285. $ss->setCacheObject($cache);
  286. $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
  287. ]]></programlisting>
  288. </sect2>
  289. <sect2 id="zend.service.slideshare.httpclient">
  290. <title>Das Verhalten des HTTP Clients ändern</title>
  291. <para>
  292. Wenn das Verhalten des HTTP Clients, aus welchen Gründen auch immer, geändert werden
  293. soll wenn eine Anfrage an den Webservice durchgeführt wird, kann das durch die
  294. Erstellung einer eigenen Instanz eines <classname>Zend_Http_Client</classname> Objektes
  295. durchgeführt werden (siehe <xref linkend="zend.http" />). Das ist zum Beispiel
  296. nützlich wenn es gewünscht ist das Timeout für die Verbindung auf etwas anderes als
  297. den Standardwert zu setzen wie anbei gezeigt:
  298. </para>
  299. <programlisting role="php"><![CDATA[
  300. $client = new Zend_Http_Client();
  301. $client->setConfig(array('timeout' => 5));
  302. $ss = new Zend_Service_SlideShare('APIKEY',
  303. 'SHAREDSECRET',
  304. 'USERNAME',
  305. 'PASSWORD');
  306. $ss->setHttpClient($client);
  307. $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
  308. ]]></programlisting>
  309. </sect2>
  310. </sect1>