2
0

Zend_Service_SlideShare.xml 13 KB

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