Zend_Service_Simpy.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17175 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.service.simpy">
  5. <title>Zend_Service_Simpy</title>
  6. <sect2 id="zend.service.simpy.introduction">
  7. <title>Einführung</title>
  8. <para>
  9. <classname>Zend_Service_Simpy</classname> ist ein schlanker Wrapper für das freie REST
  10. <acronym>API</acronym> des Simpy Lesezeichen-Services.
  11. </para>
  12. <para>
  13. Um <classname>Zend_Service_Simpy</classname> zu nutzen, solltest du bereits ein
  14. Simpy-Konto besitzen. Falls dies nicht der Fall ist, kannst du dies auf der
  15. <ulink url="http://simpy.com">Simpy Webseite</ulink> tun. Für weitere Informationen über
  16. das Simpy REST <acronym>API</acronym>, kannst du in der
  17. <ulink url="http://www.simpy.com/doc/api/rest">Simpy REST <acronym>API</acronym>
  18. Dokumentation</ulink> nachlesen.
  19. </para>
  20. <para>
  21. Das Simpy REST <acronym>API</acronym> erlaubt es dem Entwickler, mit verschiedenen
  22. Aspekten des Services, welche die Simpy Webseite bietet, zu interagieren. Diese
  23. Sektionen zeigen dir, wie man <classname>Zend_Service_Simpy</classname> in jedem dieser
  24. Bereiche nutzen kann.
  25. <itemizedlist>
  26. <listitem>
  27. <para>
  28. Links: Erstellen, Laden, Aktualisieren, Löschen
  29. </para>
  30. </listitem>
  31. <listitem>
  32. <para>
  33. Tags: Laden, Löschen, Umbenennen, Zusammenfassen, Splitten
  34. </para>
  35. </listitem>
  36. <listitem>
  37. <para>
  38. Notes: Erstellen, Laden, Aktualisieren, Löschen
  39. </para>
  40. </listitem>
  41. <listitem>
  42. <para>
  43. Watchlists: Holen, Alle holen
  44. </para>
  45. </listitem>
  46. </itemizedlist>
  47. </para>
  48. </sect2>
  49. <sect2 id="zend.service.simpy.links">
  50. <title>Links</title>
  51. <para>
  52. Beim Anfragen von Links, werden diese absteigend nach deren Datum - wann es
  53. hinzugefügt wurde - sortiert. Es kann nach Links anhand des Titels, des Spitznamens,
  54. der Tags, der Notizen oder sogar des Inhalts der verknüpften Webseite gesucht werden.
  55. Simpy erlaubt es, jegliche oder alle dieser Felder mit Phrasen, booleschen
  56. Operatoren und Wildcards zu durchsuchen. Siehe in den
  57. <ulink url="http://www.simpy.com/faq#searchSyntax">Suchsyntax</ulink>- und
  58. <ulink url="http://www.simpy.com/faq#searchFieldsLinks">Suchfelder</ulink>-Sektionen
  59. der Simipy FAQ für weitere Informationen.
  60. </para>
  61. <example id="zend.service.simpy.links.querying">
  62. <title>Abfragen von Links</title>
  63. <programlisting language="php"><![CDATA[
  64. $simpy = new Zend_Service_Simpy('yourusername', 'yourpassword');
  65. /* Suche nach den 10 letzten hinzugefügten Links */
  66. $linkQuery = new Zend_Service_Simpy_LinkQuery();
  67. $linkQuery->setLimit(10);
  68. /* Holen und darstellen */
  69. $linkSet = $simpy->getLinks($linkQuery);
  70. foreach ($linkSet as $link) {
  71. echo '<a href="';
  72. echo $link->getUrl();
  73. echo '">';
  74. echo $link->getTitle();
  75. echo '</a><br />';
  76. }
  77. /* Suche nach den 5 letzten hinzugefügten Links mit 'PHP'
  78. im Titel */
  79. $linkQuery->setQueryString('title:PHP');
  80. $linkQuery->setLimit(5);
  81. /* Suche nach allen Links mit 'French' im Titel und
  82. 'lanuage' in den Tags */
  83. $linkQuery->setQueryString('+title:French +tags:language');
  84. /* Suche nach allen Links mit 'French' im Titel und ohne
  85. 'travel' in den Tags */
  86. $linkQuery->setQueryString('+title:French -tags:travel');
  87. /* Suche nach allen Links, die am 9.12.2006 hinzugefügt wurden */
  88. $linkQuery->setDate('2006-12-09');
  89. /* Suche nach allen Links, die nach dem 9.12.2006 hinzugefügt wurden (
  90. das Datum ist nicht eingeschlossen) */
  91. $linkQuery->setAfterDate('2006-12-09');
  92. /* Suche nach allen Links, die vom dem 9.12.2006 hinzugefügt wurden (
  93. das angegebene Datum ist ausgeschlossen) */
  94. $linkQuery->setBeforeDate('2006-12-09');
  95. /* Suche nach allen Links, die zwischen dem 1.12.2006 und dem 9.12.2006
  96. hinzugefügt wurden (die beiden Daten sind dabei ausgeschlossen) */
  97. $linkQuery->setBeforeDate('2006-12-01');
  98. $linkQuery->setAfterDate('2006-12-09');
  99. ]]></programlisting>
  100. </example>
  101. <para>
  102. Links werden eindeutig durch ihren <acronym>URL</acronym> angezeigt. In anderen Worten,
  103. falls ein Versuch gemacht wird, einen Link zu speichern, der denselben
  104. <acronym>URL</acronym> hat wie ein bereits existierender Link, werden die Daten des
  105. alten Links mit den neuen Daten überschrieben.
  106. </para>
  107. <example id="zend.service.simpy.links.modifying">
  108. <title>Modifizieren von Links</title>
  109. <programlisting language="php"><![CDATA[
  110. $simpy = new Zend_Service_Simpy('yourusername', 'yourpassword');
  111. /* Speichern eines link */
  112. $simpy->saveLink(
  113. 'Zend Framework' // Titel
  114. 'http://framework.zend.com', // URL
  115. Zend_Service_Simpy_Link::ACCESSTYPE_PUBLIC, // Zugriffstyp
  116. 'zend, framework, php' // Tags
  117. 'Zend Framework home page' // Alternativer Titel
  118. 'This site rocks!' // Notiz
  119. );
  120. /* Überschreibe den existierenden Link mit neuen Daten */
  121. $simpy->saveLink(
  122. 'Zend Framework'
  123. 'http://framework.zend.com',
  124. // der Zugriffstyp wurde geändert
  125. Zend_Service_Simpy_Link::ACCESSTYPE_PRIVATE,
  126. // Die Reihenfolge der Tags hat sich geändert
  127. 'php, zend, framework'
  128. // Alternativer Titel wurde geändert
  129. 'Zend Framework'
  130. // Notiz hat sich geändert
  131. 'This site REALLY rocks!'
  132. );
  133. /* Den Link löschen */
  134. $simpy->deleteLink('http://framework.zend.com');
  135. /* Ein wirklich einfacher Weg den Frühjahrsputz
  136. bei deinen Links zu machen ;-) */
  137. $linkSet = $this->_simpy->getLinks();
  138. foreach ($linkSet as $link) {
  139. $this->_simpy->deleteLink($link->getUrl());
  140. }
  141. ]]></programlisting>
  142. </example>
  143. </sect2>
  144. <sect2 id="zend.service.simpy.tags">
  145. <title>Tags</title>
  146. <para>
  147. Wenn die Tags zurückgegeben werden, werden sie in absteigender
  148. Reihenfolge (d.h. der größte zuerst) nach der Häufigkeit der
  149. Benutzung durch die Links sortiert.
  150. </para>
  151. <example id="zend.service.simpy.tags.working">
  152. <title>Arbeiten mit Tags</title>
  153. <programlisting language="php"><![CDATA[
  154. $simpy = new Zend_Service_Simpy('yourusername', 'yourpassword');
  155. /* Speicher einen Link mit Tags */
  156. $simpy->saveLink(
  157. 'Zend Framework' // Titel
  158. 'http://framework.zend.com', // URL
  159. Zend_Service_Simpy_Link::ACCESSTYPE_PUBLIC, // Zugriffstyp
  160. 'zend, framework, php' // Tags
  161. );
  162. /* Hole eine Liste mit allen Tags, die von Links und
  163. Notizen genutzt werden */
  164. $tagSet = $simpy->getTags();
  165. /* Stelle jeden Tag mit der Anzahl der Links, die ihn nutzen, dar */
  166. foreach ($tagSet as $tag) {
  167. echo $tag->getTag();
  168. echo ' - ';
  169. echo $tag->getCount();
  170. echo '<br />';
  171. }
  172. /* Entferne das 'zend'-Tag von allen Links, die es benutzen */
  173. $simpy->removeTag('zend');
  174. /* Nenne das 'framework'-Tag zu 'frameworks' um */
  175. $simpy->renameTag('framework', 'frameworks');
  176. /* Splitte das 'frameworks'-Tag in 'framework' und
  177. 'development' auf. D.h. dass alle Links, die 'frameworks'
  178. als Tag besitzen, nunmehr stattdessen 'framework' und 'development'
  179. besitzen */
  180. $simpy->splitTag('frameworks', 'framework', 'development');
  181. /* Fasse 'framework' und 'development' wieder zu 'frameworks'
  182. zusammen; vereinfacht ist es das Gegenteil, ein Tag zu splitten */
  183. $simpy->mergeTags('framework', 'development', 'frameworks');
  184. ]]></programlisting>
  185. </example>
  186. </sect2>
  187. <sect2 id="zend.service.simpy.notes">
  188. <title>Notizen</title>
  189. <para>
  190. Notizen können gespeichert, geladen und gelöscht werden. Sie sind
  191. eindeutig durch eine numerische ID definiert.
  192. </para>
  193. <example id="zend.service.simpy.notes.working">
  194. <title>Arbeiten mit Notizen</title>
  195. <programlisting language="php"><![CDATA[
  196. $simpy = new Zend_Service_Simpy('yourusername', 'yourpassword');
  197. /* Eine Notiz speichern */
  198. $simpy->saveNote(
  199. 'Test Note', // Titel
  200. 'test,note', // Tags
  201. 'This is a test note.' // Beschreibung
  202. );
  203. /* Eine bereits existierende Notiz überschreiben */
  204. $simpy->saveNote(
  205. 'Updated Test Note', // Titel
  206. 'test,note,updated', // Tags
  207. 'This is an updated test note.', // Beschreibung
  208. $note->getId() // Eindeutige ID
  209. );
  210. /* Suche nach den 10 letzten hinzugefügten Notizen */
  211. $noteSet = $simpy->getNotes(null, 10);
  212. /* Zeige diese Notizen an */
  213. foreach ($noteSet as $note) {
  214. echo '<p>';
  215. echo $note->getTitle();
  216. echo '<br />';
  217. echo $note->getDescription();
  218. echo '<br >';
  219. echo $note->getTags();
  220. echo '</p>';
  221. }
  222. /* Suche nach allen Notizen mit 'PHP' im Titel */
  223. $noteSet = $simpy->getNotes('title:PHP');
  224. /* Suche nach allen Notizen mit 'PHP' im Titel und ohne
  225. 'framework' in der Beschreibung */
  226. $noteSet = $simpy->getNotes('+title:PHP -description:framework');
  227. /* Löschen einer Notiz */
  228. $simpy->deleteNote($note->getId());
  229. ]]></programlisting>
  230. </example>
  231. </sect2>
  232. <sect2 id="zend.service.simpy.watchlists">
  233. <title>Watchlists</title>
  234. <para>
  235. Watchlisten können durch das <acronym>API</acronym> nicht erstellt oder entfernt
  236. werden, sondern lediglich zurückgegeben. Folglich musst du eine
  237. Watchlist über die Simpy Webseite erstellen, bevor du diese
  238. über das <acronym>API</acronym> nutzt.
  239. </para>
  240. <example id="zend.service.simpy.watchlists.retrieving">
  241. <title>Zurückgeben von Watchlisten</title>
  242. <programlisting language="php"><![CDATA[
  243. $simpy = new Zend_Service_Simpy('yourusername', 'yourpassword');
  244. /* Hole eine Liste von allen Watchlisten */
  245. $watchlistSet = $simpy->getWatchlists();
  246. /* Zeige die Daten jeder Watchlist an */
  247. foreach ($watchlistSet as $watchlist) {
  248. echo $watchlist->getId();
  249. echo '<br />';
  250. echo $watchlist->getName();
  251. echo '<br />';
  252. echo $watchlist->getDescription();
  253. echo '<br />';
  254. echo $watchlist->getAddDate();
  255. echo '<br />';
  256. echo $watchlist->getNewLinks();
  257. echo '<br />';
  258. foreach ($watchlist->getUsers() as $user) {
  259. echo $user;
  260. echo '<br />';
  261. }
  262. foreach ($watchlist->getFilters() as $filter) {
  263. echo $filter->getName();
  264. echo '<br />';
  265. echo $filter->getQuery();
  266. echo '<br />';
  267. }
  268. }
  269. /* Hole eine spezielle Watchlist anhand einer ID */
  270. $watchlist = $simpy->getWatchlist($watchlist->getId());
  271. $watchlist = $simpy->getWatchlist(1);
  272. ]]></programlisting>
  273. </example>
  274. </sect2>
  275. </sect1>
  276. <!--
  277. vim:se ts=4 sw=4 et:
  278. -->