<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>La Case de l&#039;Oncle Tom &#187; amazon</title>
	<atom:link href="http://case.oncle-tom.net/tag/amazon/feed/" rel="self" type="application/rss+xml" />
	<link>http://case.oncle-tom.net</link>
	<description>Développement Web, bonnes pratiques et performances</description>
	<lastBuildDate>Sun, 25 Dec 2011 19:33:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="search"
           href="http://case.oncle-tom.net/opensearch"
           type="application/opensearchdescription+xml"
           title="Content Search" />		<item>
		<title>Plugin WordPress Amazon Widgets Shortcodes</title>
		<link>http://case.oncle-tom.net/2008/plugin-wordpress-amazon-widgets-shortcodes/</link>
		<comments>http://case.oncle-tom.net/2008/plugin-wordpress-amazon-widgets-shortcodes/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 05:00:44 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Projets]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[logiciels libres]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[shortcodes]]></category>
		<category><![CDATA[tinymce]]></category>
		<category><![CDATA[widgets]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1123</guid>
		<description><![CDATA[J&#8217;ai publié il y a quelques jours la version 1.2 du plugin Amazon Widgets Shortcodes. Cette version suit plusieurs autres publications plus intimistes, à des fins de tests grandeur nature. Ce fût en tous cas suffisant pour commencer à attirer l&#8217;attention de traducteurs. Concrètement, ce plugin facilite la monétisation des blogs WordPress en évitant de [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1140" title="Amazon Associates" src="http://case.oncle-tom.net/images/2008/09/amazon-associates.gif" alt="" width="222" height="36" /></p>
<p>J&#8217;ai publié il y a quelques jours la version 1.2 du plugin <a href="http://wordpress.org/extend/plugins/amazon-widgets-shortcodes/">Amazon Widgets Shortcodes</a>. Cette version suit plusieurs autres publications plus intimistes, à des fins de tests grandeur nature. Ce fût en tous cas suffisant pour commencer à attirer l&#8217;attention de traducteurs.</p>
<p>Concrètement, ce plugin <strong>facilite la monétisation des blogs WordPress</strong> en évitant de copier du <acronym title="HyperText Markup Language">HTML</acronym> fourni par Amazon. Les widgets Amazon s&#8217;intègrent du coup par le biais de petits raccourcis textuels, les <a href="http://codex.wordpress.org/Shortcode_API">shortcodes</a>.</p>
<p>Présentation et explications sur la conception du plugin.</p>
<p><span id="more-1123"></span></p>
<h3>Widgets Amazon</h3>
<p>Amazon fournit des widgets au travers de son <a href="http://partenaires.amazon.fr">programme Partenaires</a> (également nommé <em>Associates</em> dans le reste du monde). Ces widgets permettent d&#8217;intégrer des fonctionnalités sympathiques sur son propre site ou blog à partir d&#8217;un code <acronym title="HyperText Markup Language">HTML</acronym> généré par leur interface.</p>
<p>La liste des widgets et des fonctionnalités est assez importante :</p>
<ul>
<li>lien produit (avec ou sans image)</li>
<li>widget carrousel (présentation de produits dans un carrousel d&#8217;images)</li>
<li>widget slideshow (présentation de produits sur une bande déroulante)</li>
<li>widget envies cadeaux</li>
<li>liens textuels</li>
<li>liens aperçu produit</li>
<li>liens contextuels</li>
<li>etc.</li>
</ul>
<p>Les widgets se créent en ligne et au final, leur code <acronym title="HyperText Markup Language">HTML</acronym> nous est gentiement proposé.</p>
<p><strong>Premier constat</strong> : le code fourni par Amazon a beau être fonctionnel, c&#8217;est quand même un sacré bazar. Pour peu que l&#8217;on bascule de l&#8217;éditeur Visuel à l&#8217;éditeur <acronym title="HyperText Markup Language">HTML</acronym> de WordPress, le code est nettoyé par endroit le rendant quasi inutilisable.</p>
<p><strong>Second constat</strong>, copier ce code dans l&#8217;éditeur visuel de WordPress (TinyMCE) est passablement horrible avec parfois jusqu&#8217;à 10 lignes de <acronym title="HyperText Markup Language">HTML</acronym> illisible.</p>
<p>Enfin, côté maintenance c&#8217;est pas gagné : si Amazon change le code <acronym title="HyperText Markup Language">HTML</acronym> des éléments sans assurer de rétrocompatibilité (ce que je ne leur souhaite pas), les widgets déjà insérés seraient rendus inopérants.</p>
<div id="attachment_1144" class="wp-caption aligncenter" style="width: 355px"><img class="size-full wp-image-1144" title="Arborescence du code d'Amazon Widgets Shortcodes" src="http://case.oncle-tom.net/images/2008/09/awshortcode-workspace.png" alt="Arborescence du code d'Amazon Widgets Shortcodes" width="345" height="419" /><p class="wp-caption-text">Arborescence du code d&#39;Amazon Widgets Shortcodes</p></div>
<h3>Les objectifs fixés et avoués du plugin Amazon Widgets Shortcodes</h3>
<p>Toujours désireux d&#8217;utiliser les widgets Amazon et sentant que ça pouvait être pratique, je me suis dit que c&#8217;était l&#8217;occasion rêvée de produire un plugin utile, bien conçu et fiable.</p>
<p>En développant ce plugin, je me devais d&#8217;atteindre ces objectifs :</p>
<ul>
<li>le rendre <strong>internationalisable</strong> (<acronym title="internationalisation">i18n</acronym>)</li>
<li>le proposer en 2 langues minimum (français et anglais)</li>
<li>permettre son <strong>exploitation facilement</strong> et sans se prendre la tête (<acronym title="Keep it simple, stupid">KISS</acronym>)</li>
<li>fournir une <strong>documentation</strong> d&#8217;utilisation appropriée</li>
<li>rendre l&#8217;<strong>évolution du code aussi souple que possible</strong></li>
</ul>
<h3>Stratégie de développement</h3>
<p>Maintenant que j&#8217;avais les idées, il fallait les mettre en place. Voici comment j&#8217;avais envisagé les étapes du développement :</p>
<ol>
<li>support d&#8217;1 seul widget Amazon</li>
<li>augmentation du nombre de widgets Amazon supportés</li>
<li>stabilisation de l&#8217;<acronym title="Application Programming Interface">API</acronym> et internationalisation</li>
<li>configuration intégrale depuis l&#8217;admin WordPress</li>
<li>intégration des widgets depuis l&#8217;éditeur <acronym title="HyperText Markup Language">HTML</acronym> WordPress (TinyMCE)</li>
<li>intégration du copier/coller de code <acronym title="HyperText Markup Language">HTML</acronym> Amazon</li>
<li>support intégral des widgets</li>
<li>améliorations pratiques et ergonomiques</li>
<li>utilisation en tant que widgets dans les thèmes WordPress</li>
<li>gestion intégrée des widgets (Amazon ne fournissant aucune <acronym title="Application Programming Interface">API</acronym> à ce niveau)</li>
</ol>
<p>Cette progression permet de créer petit à petit l&#8217;application, de la rendre modulaire et extensible. L&#8217;ajout et le support de nouveaux widgets ne doit pas remettre en cause l&#8217;architecture du plugin.</p>
<div id="attachment_1143" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-1143" title="Code JavaScript d'Amazon Widgets Shortcodes" src="http://case.oncle-tom.net/images/2008/09/awshortcode-javascript-abstraction.png" alt="Code JavaScript d'Amazon Widgets Shortcodes" width="500" height="405" /><p class="wp-caption-text">Code JavaScript d&#39;Amazon Widgets Shortcodes</p></div>
<h3>Ce à quoi il faut penser en développant un plugin</h3>
<p>Développer un plugin c&#8217;est bien. Il faut cependant toujours avoir en tête qu&#8217;il ne sera pas installé que sur son propre blog. Ça doit être le <em>leitmotiv</em> qui accompagne toute nouvelle idée afin de prévoir les installations et mises à jour.</p>
<p>Voici <strong>5 points clés pour développer un bon plugin</strong> :</p>
<ol>
<li>penser <strong>utilisateur</strong> avant tout (c&#8217;est lui qui doit savoir l&#8217;utiliser, pas ses développeurs)</li>
<li>penser que le développement pourra se faire en <strong>équipe</strong> (clarté du code, documentation)</li>
<li>penser que le plugin pourra être utilisé dans <strong>plusieurs langues</strong> (<acronym title="internationalisation">i18n</acronym>)</li>
<li>penser aux <strong>scénarios de mise à jour</strong> (base de données, tests fonctionnels/unitaires)</li>
<li>penser que ce plugin n&#8217;est pas le seul sur le blog (optimisation, nommage)</li>
</ol>
<h3>Intégration d&#8217;un widget Amazon par copier/coller</h3>
<p>C&#8217;est le serpent qui se mord la queue diraient certains.<br />
Et pourtant, c&#8217;est la meilleure fonctionnalité qu&#8217;on puisse apporter. Tout le monde n&#8217;étant pas technicien, les utilisateurs lambda apprécieront de pouvoir simplement se débarrasser de leur code <acronym title="HyperText Markup Language">HTML</acronym> Amazon pour le convertir sur leur blog.</p>
<p>Simple comme bonjour !</p>
<div style="text-align:center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/BigIblty910" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/BigIblty910"></embed></object></div>
<h3>Conclusion</h3>
<p><strong>Le développement d&#8217;un plugin WordPress est relativement aisé</strong>. Certaines parties de la documentation sont quelque peu obscures, notamment celle qui touche l&#8217;éditeur <acronym title="HyperText Markup Language">HTML</acronym> et son internationalisation. Il m&#8217;a fallu m&#8217;inspirer d&#8217;autres plugins mais aussi comprendre que WordPress 2.5 mettait en cache la configuration de TinyMCE dans un fichier.</p>
<p>L&#8217;autre partie ardue fût le plugin TinyMCE : la documentation est toujours partagée entre la version 2 et la version 3 et là encore, la meilleure documentation reste le code source d&#8217;origine. Je saluerai au passage le gros effort de lisibilité que leur équipe a apporté. On en prendrait presque du plaisir à le lire <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Quoiqu&#8217;il en soit, le plugin WordPress <a href="http://wordpress.org/extend/plugins/amazon-widgets-shortcodes/">Amazon Widgets Shortcodes</a> est bel et bien <strong>prêt à être utilisé</strong> par le grand public. Le minimum vital est là. Le confort aussi.</p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/plugin-wordpress-amazon-widgets-shortcodes/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

