{"id":163,"date":"2011-08-02T23:07:00","date_gmt":"2011-08-02T21:07:00","guid":{"rendered":"https:\/\/www.ubilogic.net\/blogotof\/blog\/api-semantic-scuttle\/"},"modified":"2014-07-23T09:55:28","modified_gmt":"2014-07-23T07:55:28","slug":"api-semantic-scuttle","status":"publish","type":"post","link":"https:\/\/www.ubilogic.net\/blogotof\/archives\/163","title":{"rendered":"API Semantic Scuttle"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"..\/..\/data\/documents\/jscode.png\" width=\"220\" height=\"172\" align=\"left\" \/><\/p>\n<p>Comme <a title=\"Social Bookmarking et SemanticScuttle\" href=\"https:\/\/www.ubilogic.net\/blogotof\/?p=69\">j\u2019en ai d\u00e9j\u00e0 parl\u00e9 pr\u00e9c\u00e9demment<\/a>, j\u2019ai bascul\u00e9 sur Semantic Scuttle pour conserver mes bookmarks.<\/p>\n<p>Ce projet tr\u00e8s int\u00e9ressant permet l\u2019utilisation d\u2019une API similaire \u00e0 celle de delicious, bien qu\u2019il me semble qu\u2019elle soit moins compl\u00e8te.<\/p>\n<p>Comme concr\u00e8tement j\u2019avais besoin de r\u00e9aliser l\u2019affichage de mes 10 derniers bookmarks dans la colonne ci-contre de mon site (comme je faisais d\u00e9j\u00e0 avec delicious), j\u2019ai du mettre un peu les mains dans le cambouis de l\u2019API de SemanticScuttle.<\/p>\n<p>En effet, en creusant un peu, j\u2019ai constat\u00e9 que Semantic Scuttle ne fournissait pas tip top ce qu\u2019il me fallait&#8230; J\u2019ai donc du adapter ce qui existait pour moi. Et je le poste, au cas o\u00f9 \u00e7a pourrait servir \u00e0 quelqu\u2019un d\u2019autre.<\/p>\n<p><!--more--><\/p>\n<p>Pour commencer, il faut savoir que Semantic Scuttle fourni un script (rss.php) qui accepte des param\u00e8tres comme \u201ccount\u201d pour afficher un certain nombre d\u2019articles. Un exemple :\u00a0<a href=\"http:\/\/links.ubilogic.net\/rss.php\/christophe?count=10\">http:\/\/links.ubilogic.net\/rss.php\/christophe?count=10<\/a><\/p>\n<p>Ceci affiche mes bookmarks mais limit\u00e9 \u00e0 10. Il s\u2019agit bien \u00e9videmment des 10 derniers.<\/p>\n<p>Maintenant, pour utiliser \u00e7a un peu plus facilement en javascript, j\u2019aurais pr\u00e9f\u00e9r\u00e9 un rendu en json comme delicious le permet.<\/p>\n<p>Qu\u2019\u00e0 cela ne tienne, j\u2019ai honteusement copi\u00e9 le script rss.php et je l\u2019ai transform\u00e9 en json.php.<\/p>\n<p>A partir de l\u00e0, ce fut tr\u00e8s simple de convertir le template d\u2019output pour obtenir du json. Je n\u2019ai pas de grand m\u00e9rite pour la transformation (bah, parfois on fait des p\u2019tits trucs vite fait, bien fait qui peuvent servir sans grande pr\u00e9tention).<\/p>\n<p>J\u2019ai aussi du copier le script rss.tpl.php pour en faire un json.tpl.php.<\/p>\n<p>Et voici comment je l\u2019utilise pour faire appara\u00eetre mes 10 derniers liens dans la barre lat\u00e9rale de ce site, ci-contre :<\/p>\n<pre class=\"brush:js\">&lt;div id=\"my_links\"&gt;\r\n&lt;script type=\"text\/javascript\" src=\"http:\/\/links.ubilogic.net\/json.php\/christophe?count=10\"&gt;&lt;\/script&gt;\r\n&lt;script type=\"text\/javascript\"&gt;\r\nvar ul = document.createElement('ul')\r\nfor (var i=0, post; post = ScuttleLinks.posts[i]; i++) {\r\nvar li = document.createElement('li')\r\nvar a = document.createElement('a')\r\na.setAttribute('href', post.u)\r\na.appendChild(document.createTextNode(post.d))\r\nli.appendChild(a)\r\nul.appendChild(li)\r\n}\r\ndocument.getElementById('my_links').appendChild(ul)\r\n&lt;\/script&gt;\r\n&lt;\/div&gt;<\/pre>\n<p>Ce bout de html avec un peu de javascript est directement ins\u00e9r\u00e9 l\u00e0 o\u00f9 je veux qu\u2019il apparaisse. La mise en forme d\u00e9pend, bien entendu, des CSS que je n\u2019ai pas retranscrit ici.<\/p>\n<p>Bon, les puristes trouveront certainement \u00e0 redire sur la forme mais en m\u00eame temps, \u00e7a fonctionne super bien.<\/p>\n<p>Et pour ceux qui le veulent, <a href=\"https:\/\/www.ubilogic.net\/blogotof\/files\/json.zip\">voici les scripts dans un zip<\/a>.<\/p>\n<p>Le json.php se place en racine de semanticscuttle et json.tpl.php se place sous data\/templates\/<\/p>\n<p>&nbsp;<\/p>\n<p>Enjoy!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comme j\u2019en ai d\u00e9j\u00e0 parl\u00e9 pr\u00e9c\u00e9demment, j\u2019ai bascul\u00e9 sur Semantic Scuttle pour conserver mes bookmarks. Ce projet tr\u00e8s int\u00e9ressant permet l\u2019utilisation d\u2019une API similaire \u00e0 celle de delicious, bien qu\u2019il me semble qu\u2019elle soit moins compl\u00e8te. Comme concr\u00e8tement j\u2019avais besoin de r\u00e9aliser l\u2019affichage de mes 10 derniers bookmarks dans la colonne ci-contre de mon site [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-163","post","type-post","status-publish","format-standard","hentry","category-info"],"_links":{"self":[{"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/posts\/163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/comments?post=163"}],"version-history":[{"count":0,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/posts\/163\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/media?parent=163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/categories?post=163"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/tags?post=163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}