| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.service.slideshare">
- <title>Zend_Service_SlideShare</title>
- <para>
- Die <classname>Zend_Service_SlideShare</classname> wird verwendet um mit dem
- <ulink url="http://www.slideshare.net/">slideshare.net</ulink> Web Service für das
- Online-Hosten von Slideshows zu interagieren. Mit dieser Komponente kann eine Slideshow
- die in dieser Website gehostet wird in einer Website eingebettet und sogar neue
- Slideshows zum eigenen Account hochgeladen werden.
- </para>
- <sect2 id="zend.service.slideshare.basicusage">
- <title>Mit Zend_Service_SlideShare beginnen</title>
- <para>
- Um die <classname>Zend_Service_SlideShare</classname> Komponente zu verwenden muß zuerst
- ein Account auf den slideshare.net Servern erstellt werden (mehr Informationen können
- <ulink url="http://www.slideshare.net/developers/">hier</ulink> gefunden werden) um
- einen <acronym>API</acronym> Schlüssel, Benutzername, Passwort und einen geteilten
- geheimen Wert zu erhalten -- diese werden alle benötigt um die
- <classname>Zend_Service_SlideShare</classname> Komponente zu verwenden.
- </para>
- <para>
- Sobald ein Account erstellt wurde, kann die
- <classname>Zend_Service_SlideShare</classname> Komponente verwendet werden durch die
- Erstellung eines <classname>Zend_Service_SlideShare</classname> Objektes und dem
- anbieten dieser Werte wie anbei gezeigt:
- </para>
- <programlisting language="php"><![CDATA[
- // Erstellt eine neue Instanz der Komponente
- $ss = new Zend_Service_SlideShare('APIKEY',
- 'SHAREDSECRET',
- 'USERNAME',
- 'PASSWORD');
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.service.slideshare.slideshowobj">
- <title>Das SlideShow Objekt</title>
- <para>
- Alle Slideshows in der <classname>Zend_Service_SlideShare</classname> werden
- repräsentiert durch die Verwendung des
- <classname>Zend_Service_SlideShare_SlideShow</classname> Objektes (sowohl beim Empfangen
- als auch beim Hochladen neuer Slideshows). Zur Referenz ist eine Pseudo-Code Version
- dieser Klasse anbei zu sehen.
- </para>
- <programlisting language="php"><![CDATA[
- class Zend_Service_SlideShare_SlideShow {
- /**
- * Empfängt den Ort der Slideshow
- */
- public function getLocation() {
- return $this->_location;
- }
- /**
- * Erhält das Transcript für die Slideshow
- */
- public function getTranscript() {
- return $this->_transcript;
- }
- /**
- * Fügt ein Tag zu der Slideshow hinzu
- */
- public function addTag($tag) {
- $this->_tags[] = (string)$tag;
- return $this;
- }
- /**
- * Setzt die Tags für die Slideshow
- */
- public function setTags(Array $tags) {
- $this->_tags = $tags;
- return $this;
- }
- /**
- * Erhält alle Tags die mit der Slideshow assoziiert sind
- */
- public function getTags() {
- return $this->_tags;
- }
- /**
- * Setzt den Dateinamen im Lokalen Filesystem der Slideshow
- * (für das Hochladen einer neuen Slideshow)
- */
- public function setFilename($file) {
- $this->_slideShowFilename = (string)$file;
- return $this;
- }
- /**
- * Empfängt den Dateinamen auf dem lokalen Dateisystem der Slideshow
- * die hochgeladen werden soll
- */
- public function getFilename() {
- return $this->_slideShowFilename;
- }
- /**
- * Empfängt die ID für die Slideshow
- */
- public function getId() {
- return $this->_slideShowId;
- }
- /**
- * Empfängt den eingebetteten HTML Code für die Slideshow
- */
- public function getEmbedCode() {
- return $this->_embedCode;
- }
- /**
- * Empfängt die Thumbnail URi für die Slideshow
- */
- public function getThumbnailUrl() {
- return $this->_thumbnailUrl;
- }
- /**
- * Setzt den Titel für die Slideshow
- */
- public function setTitle($title) {
- $this->_title = (string)$title;
- return $this;
- }
- /**
- * Empfängt den Titel der Slideshow
- */
- public function getTitle() {
- return $this->_title;
- }
- /**
- * Setzt die Beschreibung für die Slideshow
- */
- public function setDescription($desc) {
- $this->_description = (string)$desc;
- return $this;
- }
- /**
- * Empfängt die Beschreibung der Slideshow
- */
- public function getDescription() {
- return $this->_description;
- }
- /**
- * Erhält den nummerischen Status der Slideshow auf dem Server
- */
- public function getStatus() {
- return $this->_status;
- }
- /**
- * Erhält die textuelle Beschreibung des Status der Slideshow
- * auf dem Server
- */
- public function getStatusDescription() {
- return $this->_statusDescription;
- }
- /**
- * Erhält den permanenten Link der Slideshow
- */
- public function getPermaLink() {
- return $this->_permalink;
- }
- /**
- * Erhält die Anzahl der Aufrufe der Slideshow
- */
- public function getNumViews() {
- return $this->_numViews;
- }
- }
- ]]></programlisting>
- <note>
- <para>
- Die obige Pseudo-Klasse zeigt nur die Methoden welche von End-Benutzer
- Entwicklern verwendet werden sollten. Andere vorhandene Methoden sind
- intern für die Komponente.
- </para>
- </note>
- <para>
- Wenn die <classname>Zend_Service_SlideShare</classname> Komponente verwendet wird, wird
- diese Daten Klasse sehr oft verwendet um nachzusehen oder neue Slideshows zu oder
- von einem Webservice hinzuzufügen.
- </para>
- </sect2>
- <sect2 id="zend.service.slideshare.getslideshow">
- <title>Empfangen einer einzelnen Slideshow</title>
- <para>
- Die einfachste Verwendung der <classname>Zend_Service_SlideShare</classname> Komponente
- ist der Empfang einer einzelnen Slideshow durch die Slideshow ID die von der
- slideshare.net Anwendung angeboten wird und kann durch den Aufruf der
- <methodname>getSlideShow()</methodname> auf einem
- <classname>Zend_Service_SlideShare</classname> Objekt und der Verwendung des
- resultierenden <classname>Zend_Service_SlideShare_SlideShow</classname> Objektes wie
- gezeigt durchgeführt werden.
- </para>
- <programlisting language="php"><![CDATA[
- // Erstellt eine neue Instanz der Komponente
- $ss = new Zend_Service_SlideShare('APIKEY',
- 'SHAREDSECRET',
- 'USERNAME',
- 'PASSWORD');
- $slideshow = $ss->getSlideShow(123456);
- print "Slide Show Titel: {$slideshow->getTitle()}<br/>\n";
- print "Anzahl an Besuchen: {$slideshow->getNumViews()}<br/>\n";
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.service.slideshare.getslideshowlist">
- <title>Empfangen von Gruppen von Slideshows</title>
- <para>
- Wenn die spezielle ID einer Slideshow die einen interessiert und die man empfangen will
- nicht kennt, kann man auch Gruppen von Slideshows empfangen durch Verwendung einer der
- drei Methoden:
- </para>
- <itemizedlist mark="opencircle">
- <listitem>
- <para>
- <emphasis>Slideshows von einem speziellen Account</emphasis>
- </para>
- <para>
- Slideshows können von einem speziellen Account empfangen werden durch
- Verwendung der <methodname>getSlideShowsByUsername()</methodname> Methode und
- der Angabe des Benutzernamens von dem die Slideshow empfangen werden soll
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Slideshows mit einem speziellen Tag</emphasis>
- </para>
- <para>
- Slideshows können empfangen werden wenn Sie ein oder mehrere spezielle Tags
- enthalten durch die Verwendung der <methodname>getSlideShowsByTag()</methodname>
- Methode und der Angabe von ein oder mehreren Tags welche der Slideshow
- zugeordnet sein müssen um Sie zu empfangen
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Slideshows durch Gruppen</emphasis>
- </para>
- <para>
- Man kann Slideshows empfangen welche Mitglied einer speziellen Gruppe sind
- durch Verwendung der <methodname>getSlideShowsByGroup()</methodname> Methode und
- der Angabe des Namens der Gruppe welcher die Slideshow angehören muß um Sie zu
- Empfangen
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Jede der obigen Methoden des Empfangens mehrerer Slideshows zeigt das ein ähnlicher
- Ansatz verwendet wird. Ein Beispiel der Verwendung jeder Methode wird anbei gezeigt:
- </para>
- <programlisting language="php"><![CDATA[
- // Erstellt eine neue Instanz der Komponente
- $ss = new Zend_Service_SlideShare('APIKEY',
- 'SHAREDSECRET',
- 'USERNAME',
- 'PASSWORD');
- $starting_offset = 0;
- $limit = 10;
- // Empfängt die ersten 10 jeden Typs
- $ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
- $ss_tags = $ss->getSlideShowsByTag('zend', $starting_offset, $limit);
- $ss_group = $ss->getSlideShowsByGroup('mygroup', $starting_offset, $limit);
- // Durch die Slideshows iterieren
- foreach($ss_user as $slideshow) {
- print "Slide Show Titel: {$slideshow->getTitle}<br/>\n";
- }
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.service.slideshare.caching">
- <title>Zend_Service_SlideShare Caching Policy</title>
- <para>
- Standardmäßig cached <classname>Zend_Service_SlideShare</classname> jede Anfrage an den
- Webservice automatisch in das Dateisystem (Standardpfad <filename>/tmp</filename>) für
- 12 Stunden. Wenn man das Verhalten ändern will, muß eine eigenes <link
- linkend="zend.cache">Zend_Cache</link> Objekt durch Verwendung der
- <methodname>setCacheObject()</methodname> Methode angegeben werden wie anbei gezeigt:
- </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>Das Verhalten des HTTP Clients ändern</title>
- <para>
- Wenn das Verhalten des <acronym>HTTP</acronym> Clients, aus welchen Gründen auch immer,
- geändert werden soll wenn eine Anfrage an den Webservice durchgeführt wird, kann das
- durch die Erstellung einer eigenen Instanz eines <classname>Zend_Http_Client</classname>
- Objektes durchgeführt werden (siehe <link linkend="zend.http">Zend_Http</link>). Das ist
- zum Beispiel nützlich wenn es gewünscht ist das Timeout für die Verbindung auf etwas
- anderes als den Standardwert zu setzen wie anbei gezeigt:
- </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>
|