<?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>John Noone &#187; WordPress</title>
	<atom:link href="http://www.john-noone.com/categories/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.john-noone.com</link>
	<description>CV, portail et plus si affinités</description>
	<lastBuildDate>Wed, 24 Aug 2011 23:15:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Vote !</title>
		<link>http://www.john-noone.com/2008/12/11/vote/</link>
		<comments>http://www.john-noone.com/2008/12/11/vote/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 22:04:09 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[humour]]></category>
		<category><![CDATA[vote]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/?p=278</guid>
		<description><![CDATA[A change is gonna come.]]></description>
			<content:encoded><![CDATA[<p>A change is <a href="http://superficelle.fr/452-superficelle-dans-le-top-20-des-blogs-illustratrices-elle">gonna come</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2008/12/11/vote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSD propulsé sur wordpress.org</title>
		<link>http://www.john-noone.com/2007/06/24/osd-propulse-sur-wordpressorg/</link>
		<comments>http://www.john-noone.com/2007/06/24/osd-propulse-sur-wordpressorg/#comments</comments>
		<pubDate>Sun, 24 Jun 2007 20:01:14 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/2007/06/24/osd-propulse-sur-wordpressorg/</guid>
		<description><![CDATA[Je profite du r&#233;pertoire de plugins de WordPress.org pour publier la nouvelle version du plugin OSD. J&#8217;ai fait quelques petites modifications car l&#8217;ancienne version provoquait un petit bug qui rendait les pages non valides XHTML. Ce plugin permet de cr&#233;er un Open Search Document pour votre blog. C&#8217;est une norme qui permet d&#8217;interfacer le syst&#232;me [...]]]></description>
			<content:encoded><![CDATA[<p>Je profite du <a href="http://wordpress.org/extend/plugins/">r&eacute;pertoire de plugins</a> de WordPress.org pour publier la <a href="http://wordpress.org/extend/plugins/open-search-document/">nouvelle version du plugin OSD</a>. J&#8217;ai fait quelques petites modifications car <a href="http://www.john-noone.com/2006/10/28/open-search-document/">l&#8217;ancienne version</a> provoquait un petit bug qui rendait les pages non valides XHTML.</p>
<p>Ce plugin permet de cr&eacute;er un Open Search Document pour votre blog. C&#8217;est une norme qui permet d&#8217;interfacer le syst&egrave;me de recherche de votre blog. Actuellement, Firefox et IE7 utilisent cette norme pour compl&eacute;ter les  diff&eacute;rents moteurs de recherche.</p>
<h3>Installation</h3>
<ol>
<li>T&eacute;l&eacute;chargez le fichier <code>osd.php</code> dans le r&eacute;pertoire <code>/wp-content/plugins/</code></li>
<li>Activez le plugin &agrave; partir de la page <em>Plugins</em></li>
<li>Remplacez les balises <code>< header ></code> par <code>< header profile="< ?php head_profile(); ? >" ></code> dans vos th&egrave;mes</li>
<li>Rechargez vos permaliens &agrave; partir de la page <em>Options > Permaliens</em></li>
</ol>
<div class="download">
<h3>T&eacute;l&eacute;chargement <a id="p95" href="http://downloads.wordpress.org/plugin/open-search-document.zip" title="Open Search Document Plugin">osd.zip</a></h3>
<p>Version en perp&eacute;tuelle &eacute;volution</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2007/06/24/osd-propulse-sur-wordpressorg/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Un petit plugin pour les %category%</title>
		<link>http://www.john-noone.com/2007/04/06/true-cat-rewrite/</link>
		<comments>http://www.john-noone.com/2007/04/06/true-cat-rewrite/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 12:18:03 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[permaliens]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/2007/04/06/true-cat-rewrite/</guid>
		<description><![CDATA[J&#8217;ai &#233;cris un bout de code pour corriger le bug des %category% de WordPress. Ce petit bout agit comme un patch et permet de corriger d&#8217;un bloc tous les bugs relatifs aux permaliens des plugins g&#233;niaux, comme Identikit, Ultimate Tag Warriors et plein d&#8217;autres. Il permet aussi de r&#233;ellement sp&#233;cifier la base des Cat&#233;gories. Par [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai &eacute;cris un bout de code pour corriger le bug des %category% de WordPress.</p>
<p>Ce petit bout agit comme un patch et permet de corriger d&#8217;un bloc tous les bugs relatifs aux permaliens des plugins g&eacute;niaux, comme Identikit, Ultimate Tag Warriors et plein d&#8217;autres.<br />
Il permet aussi de r&eacute;ellement sp&eacute;cifier la base des Cat&eacute;gories. Par d&eacute;faut, si vous laissiez ce champ vide, WordPress pointe vers une url du type <em>http://example.org/category/uncategorized/</em>. Maintenant, vous pouvez faire <em>http://example.org/uncategorized/</em>.<br />
Enfin il fait des redirection 301 des urls de type category/ vers les nouvelles urls des pages.</p>
<div class="download">
<h3>T&eacute;l&eacute;charger<br />
<a id="p140" href="http://cdn.john-noone.com/2007/04/tru-cat-rewrite.php2.zip">Tru Cat Rewrite</a></h3>
<p>Version beta du 14 avril 2007</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2007/04/06/true-cat-rewrite/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Le bout du tunnel</title>
		<link>http://www.john-noone.com/2007/03/14/le-bout-du-tunnel/</link>
		<comments>http://www.john-noone.com/2007/03/14/le-bout-du-tunnel/#comments</comments>
		<pubDate>Wed, 14 Mar 2007 18:14:23 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[avatar]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/2007/03/14/le-bout-du-tunnel/</guid>
		<description><![CDATA[C&#8217;est presque &#231;a. A l&#8217;aveugle, j&#8217;ai pu avancer dans l&#8217;&#233;criture des nouvelles versions de mes deux plugins f&#233;tiches. Ils ont &#233;t&#233; test&#233; et fonctionnent actuellement sur des sites en production. Il reste essentiellement de la documentation &#224; &#233;crire, et rationaliser / optimiser le code. Lightbox+ Lightbox+ passe en version 0.1.2 . Il fonctionne aussi bien [...]]]></description>
			<content:encoded><![CDATA[<p>C&#8217;est presque &ccedil;a. A l&#8217;aveugle, j&#8217;ai pu avancer dans l&#8217;&eacute;criture des nouvelles versions de mes deux plugins f&eacute;tiches. Ils ont &eacute;t&eacute; test&eacute; et fonctionnent actuellement sur des sites en production. Il reste essentiellement de la documentation &agrave; &eacute;crire, et rationaliser / optimiser le code.</p>
<h3>Lightbox+</h3>
<p>Lightbox+ passe en version 0.1.2 . Il fonctionne aussi bien sur WordPress 2.0 que WordPress 2.1. Cette version est plus lourde que la pr&eacute;c&eacute;dente, mais pour le plus grand bien. Elle permet de garder les attributs des images. Vous pouvez donc bidouiller vos images avec votre WYSIWYG pr&eacute;f&eacute;r&eacute;, &ccedil;a ne sera pas tout cass&eacute;.</p>
<div class="download">
<h3>Tester<br />
<a id="p130" href="http://cdn.john-noone.com/2007/03/lightbox-plus.zip" title="Lightbox+ version 0.1.2">lightbox-plus.zip</a></h3>
<p>Version beta du 14 mars 2007</p>
</div>
<h3>Identikit 2</h3>
<p>Alors l&agrave; c&#8217;est carr&eacute;ment une version 2. Ce plugin est le plus abouti pour la gestion de tunings pour le blog. Il devient un plugin hautement configurable d&#8217;un nouveau genre. En gros, Identikit est une classe qui propose diff&eacute;rentes fonctions pour g&eacute;rer des images, css et d&#8217;autres petites choses. Seul, il ne fait rien. Il faut le surcharger de diff&eacute;rents &laquo;&nbsp;sujets&nbsp;&raquo; qui manipulent un aspect, une notion. Actuellement, j&#8217;ai &eacute;crit ces sujets&nbsp;:</p>
<ol>
<li>Utilisateur&nbsp;: Pour t&eacute;l&eacute;charger les avatars d&#8217;un utilisateur (auteur et commentateur). Ce sujet maitrise ces sources&nbsp;: favatars, gravatars, pavatars, zimavatars, buddy&#8217;s icon de FlickR, avatars de 30 boxes, avatars de MyBlogLog. De plus, il a une petite interface d&#8217;administration pour censurer des avatars.</li>
<li>Cat&eacute;gorie&nbsp;: Pour assigner une couleur (dont sa CSS correspondante) et une ic&ocirc;ne a une cat&eacute;gorie.</li>
<li>Articles&nbsp;: Pour assigner des collections d&#8217;illustration &agrave; des articles</li>
<li>Favicon&nbsp;: Pour afficher le Favicon du site</li>
<li>hCard&nbsp;: pour afficher la hCard de l&#8217;auteur d&#8217;un article</li>
</ol>
<p>Ce plugin est toujours en cours de traduction &#038; documentation. Son fonctionnement n&#8217;est assur&eacute; que sur des sites WordPress 2.1.</p>
<div class="download">
<h3>Tester<br />
<a id="p132" href="http://cdn.john-noone.com/2007/06/identikit2.zip" title="Identikit 2 beta G">Identikit 2</a></h3>
<p>Version beta G du 5 juin 2007</p>
</div>
<p>D&egrave;s que possible, je sortirai de belles versions officielles.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2007/03/14/le-bout-du-tunnel/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Des priorités plus prioritaires</title>
		<link>http://www.john-noone.com/2007/01/19/des-priorites-plus-prioritaires/</link>
		<comments>http://www.john-noone.com/2007/01/19/des-priorites-plus-prioritaires/#comments</comments>
		<pubDate>Fri, 19 Jan 2007 08:46:55 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[développement]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/2007/01/19/des-priorites-plus-prioritaires/</guid>
		<description><![CDATA[Je pensais mettre &#224; disposition la nouvelle version d&#8217;Identikit avant le 1er janvier 2007. Mais il se trouve que j&#8217;ai trouv&#233; extr&#234;mement rapidement un nouveau chez moi. Donc j&#8217;attends que mon FAI me connecte dans mon nouveau chez moi, et consacre toute mon &#233;nergie &#224; arpenter les magasins d&#8217;ameublement. &#192; force de me voir, les [...]]]></description>
			<content:encoded><![CDATA[<p>Je pensais mettre &agrave; disposition la nouvelle version d&#8217;Identikit avant le 1<sup>er</sup> janvier 2007. Mais il se trouve que j&#8217;ai trouv&eacute; extr&ecirc;mement rapidement un nouveau chez moi.</p>
<p>Donc j&#8217;attends que mon FAI me connecte dans mon nouveau chez moi, et consacre toute mon &eacute;nergie &agrave; arpenter les magasins d&#8217;ameublement. &Agrave; force de me voir, les caissi&egrave;res d&#8217;Ik&eacute;a me reconnaissent. Bient&ocirc;t elles me salueront et me demanderont des conseils sur les canap&eacute;s.</p>
<p>Mais ceci dit, le nouveau plugin est rest&eacute; au m&ecirc;me point de d&eacute;veloppement qu&#8217;il y a un mois. Je dois corriger un gros bug qui cr&eacute;&eacute; un tas d&#8217;image &agrave; l&#8217;insu de l&#8217;administrateur, et finir de corriger les anglicismes.</p>
<p>Pour les  curieux, je met &agrave; disposition la version de d&eacute;veloppement, mais elle n&#8217;est pas &agrave; utiliser en production, tout peut-&ecirc;tre amen&eacute; &agrave; changer. &Agrave; priori cette version fonctionne tr&egrave;s bien sur un PHP5 et Apache 1.3 avec les permaliens.</p>
<div class="download">
<h3>Tester<br />
<a id="p124" href="http://cdn.john-noone.com/2007/01/identikit2.zip">Identikit 2</a></h3>
<p>Version alpha du 19 janvier 2007</p>
</div>
<p>Si vous la t&eacute;l&eacute;chargez et que vous la tester, pouvez-vous notifier les bugs dans les commentaires de ce billet<span class="fine">&nbsp;</span>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2007/01/19/des-priorites-plus-prioritaires/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Un léger aperçu d&#8217;Identikit 2</title>
		<link>http://www.john-noone.com/2006/12/07/un-leger-apercu-didentikit-2/</link>
		<comments>http://www.john-noone.com/2006/12/07/un-leger-apercu-didentikit-2/#comments</comments>
		<pubDate>Thu, 07 Dec 2006 21:54:30 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[avatar]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/2006/12/07/un-leger-apercu-didentikit-2/</guid>
		<description><![CDATA[Trois semaines sans nouvelles. Je travaille trop. Je fignole un petit site interne tout en WordPress. Et pour cela, j&#8217;ai r&#233;&#233;cris le plugin Identikit. J&#8217;ai &#233;cout&#233; les d&#233;sid&#233;rata de mes petits camarades, j&#8217;ai pris mon courage &#224; deux mains, mis &#224; plat mes id&#233;es, et ai retenu plusieurs axes d&#8217;am&#233;liorations&#160;: Modularit&#233;, S&#233;curit&#233;, Rapidit&#233;, Internationalit&#233;. Modularit&#233; [...]]]></description>
			<content:encoded><![CDATA[<p>Trois semaines sans nouvelles. Je travaille trop. Je fignole un petit site interne tout en WordPress. Et pour cela, j&#8217;ai r&eacute;&eacute;cris le plugin Identikit. J&#8217;ai &eacute;cout&eacute; les d&eacute;sid&eacute;rata de mes petits camarades, j&#8217;ai pris mon courage &agrave; deux mains, mis &agrave; plat mes id&eacute;es, et ai retenu plusieurs axes d&#8217;am&eacute;liorations&nbsp;: Modularit&eacute;, S&eacute;curit&eacute;, Rapidit&eacute;, Internationalit&eacute;.</p>
<p><h3>Modularit&eacute;</h3></p>
<p>Pour les bloggueurs, le plugin ne se contentera plus de g&eacute;rer les avatars utilisateurs. Actuellement, il est capable de g&eacute;rer les avatars utilisateurs (local, gravatar, pavatar, favatar), de g&eacute;rer les favicons, d&#8217;illustrer les diff&eacute;rents articles, et d&#8217;illustrer les cat&eacute;gories. Et tout &ccedil;a est hautement configurable. </p>
<p>Pour les bidouilleurs , j&#8217;ai tout cass&eacute; pour tout rationaliser. Le script principal est transform&eacute; en une seule classe. Dedans s&#8217;y trouve toutes les m&eacute;thodes standardis&eacute;es et les cr&eacute;ations &agrave; la vol&eacute;e. L&#8217;avantage est de ne d&eacute;clarer la classe qu&#8217;une seule fois, au lieu de cr&eacute;er une nouvelle instance &agrave; chaque appel (ceci optimise consid&eacute;rablement les perfs). Tous les traitements sont consolid&eacute;s. Cette classe monte d&#8217;autres classes qui traitent des diff&eacute;rentes parties. Les diff&eacute;rentes fonctions des th&egrave;mes appelleront directement les m&eacute;thodes de la classe principale.</p>
<p><h3>Optimiser</h3></p>
<p>J&#8217;ai tout r&eacute;&eacute;cris. Rien que &ccedil;a. Dans le monde de l&#8217;invisible, avec le concours de Jeena Paradies, j&#8217;ai r&eacute;&eacute;cris le script qui d&eacute;busque les pavatars dans les pages des utilisateurs. Il m&#8217;a aussi fait par d&#8217;une lacune de s&eacute;curit&eacute;. Maintenant, le script s&#8217;assure de ne t&eacute;l&eacute;charger que des images. J&#8217;ai &eacute;cris des alternatives pour essayer de rendre les scripts utilisables dans d&#8217;autres configurations (curl sinon fgets, imagemagick sinon gd2&#8230;).</p>
<p>Dans le monde du visible, l&#8217;ancien script ramait lorsqu&#8217;une personne laissait un message sur le blog. C&#8217;est parce que le script de t&eacute;l&eacute;chargement s&#8217;effectuait avant le rechargement de la page de r&eacute;ponse. Maintenant il n&#8217;y a plus ce soucis par une triche odieusement astucieuse. Au lieu d&#8217;afficher imm&eacute;diatement l&#8217;avatar de l&#8217;utilisateur il y aura une petite ic&ocirc;ne de remplacement (c&#8217;est ce qui fait toute la diff&eacute;rence !). Et c&#8217;est cette petite ic&ocirc;ne qui se chargera de lancer le script, ne p&eacute;nalisant pas la navigation de l&#8217;utilisateur.</p>
<p>Sinon je tente de rendre possible l&#8217;usage de ce script avec les pseudos jolies urls avec un index.php Enfin pour &ecirc;tre en accord avec les specs des pavatars, je tente d&#8217;&eacute;crire une interface de mod&eacute;ration des avatars.</p>
<p><h3>Internationalisation</h3></p>
<p>Puisque la demande internationale est forte, je vais rendre le biniou international.</p>
<p><h3>The resume in English</h3></p>
<p>Excuse my English. Three weeks without a word&#8230; Well, i&#8217;m working to much<span class="fine">&nbsp;</span>!</p>
<p>I&#8217;m making a little website with WordPress for my job. To make this, i&#8217;m rewriting the plugin Identikit. I have listen to wishes from every folks, taken my courage in both hands, sended my ideas back to the drawing board and keep 3 axes for improvement&nbsp;: Modularity, Optimisation and Internationalization </p>
<p>Actually, the prototype can manage users&#8217; avatars and pavicons. add icons to the articles, and icons &amp; colors to the categories. And everything is customisable. I&#8217;ve broken everything for rationalize everything. The main script is now a unique class with all methods mutualised. This main class is onl loaded one time by the system, instead of creating a new instance for every calls. This class is overloaded by differents class (one by subject).<br />
I&#8217;m optimising the code for making it more flexible and secure. Also i&#8217;m optimising the navigation for the visitors. The autodiscoveries functions will not slow down pages. And for the end, i will make this plugin internationalizable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2006/12/07/un-leger-apercu-didentikit-2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Open Search Document</title>
		<link>http://www.john-noone.com/2006/10/28/open-search-document/</link>
		<comments>http://www.john-noone.com/2006/10/28/open-search-document/#comments</comments>
		<pubDate>Sat, 28 Oct 2006 13:50:32 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/2006/10/28/open-search-document/</guid>
		<description><![CDATA[Tiens tiens tiens, IE7 et Firefox 2 sortent au m&#234;me moment. Et ces deux navigateurs supportent l&#8217;Open Search Document. K&#233;sako&#160;? C&#8217;est un standard xml qui permet d&#8217;ajouter des moteurs de recherches sur ces deux navigateurs. La document est accessible sur le site d&#233;di&#233; www.opensearch.org. Donc comme &#231;a ne mange pas de pain, j&#8217;ai &#233;crit le [...]]]></description>
			<content:encoded><![CDATA[<p>Tiens tiens tiens, IE7 et Firefox 2 sortent au m&ecirc;me moment. Et ces deux navigateurs supportent l&#8217;Open Search Document.</p>
<h3>K&eacute;sako<span class="fine">&nbsp;</span>?</h3>
<p>C&#8217;est un standard xml qui permet d&#8217;ajouter des moteurs de recherches sur ces deux navigateurs. La document est accessible sur le site d&eacute;di&eacute; <a href="http://www.opensearch.org/Specifications/OpenSearch/1.1">www.opensearch.org</a>.</p>
<p>Donc comme &ccedil;a ne mange pas de pain, j&#8217;ai &eacute;crit le plugin qui le fait bien <img src='http://www.john-noone.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Installation</h3>
<ol>
<li>T&eacute;l&eacute;chargez le document <a id="p95" href="http://cdn.john-noone.com/2006/10/osd.phps" title="Open Search Document Plugin">osd.phps</a>, et renommez le en <em>osd.php</em><span class="fine">&nbsp;</span>;</li>
<li>d&eacute;posez le dans votre r&eacute;pertoire des plugins<span class="fine">&nbsp;</span>;</li>
<li>puis via votre interface d&#8217;administration, activez-le </li>
<li>enfin, rechargez vos liens permanents<span class="fine">&nbsp;</span>;</li>
<li>voil&agrave;<span class="fine">&nbsp;</span>!</li>
</ol>
<p>Maintenant, quand un utilisateur de Firefox ira sur votre site, il aura la possibilit&eacute; d&#8217;installer votre moteur de recherche. Si vous souhaitez afficher la petite image qui accompagne le moteur de recherche, mettez &agrave; la racine de votre site soit une favicon.ico, soit une favicon.png. Mais je vous rappelle que j&#8217;ai &eacute;crit un plugin qui permet de cr&eacute;er ce fameux favicon <img src='http://www.john-noone.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Pour IE7, je ne peux pas tester (Mac User). Je vous fait confiance pour me remonter vos remarque concernant ce navigateur.</p>
<div class="download">
<h3>T&eacute;l&eacute;chargement <a id="p95" href="http://downloads.wordpress.org/plugin/open-search-document.zip" title="Open Search Document Plugin">osd.zip</a></h3>
<p>Version en perp&eacute;tuelle &eacute;volution</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2006/10/28/open-search-document/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lightbox+</title>
		<link>http://www.john-noone.com/2006/10/22/lightbox/</link>
		<comments>http://www.john-noone.com/2006/10/22/lightbox/#comments</comments>
		<pubDate>Sun, 22 Oct 2006 16:31:36 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/2006/10/22/lightbox/</guid>
		<description><![CDATA[Anne se plaint de son site. Il n&#8217;est pas aussi simple que les espaces MSN. Elle aurait aimer que le script Lightbox soit encore plus coool. Soit, je vais le rendre plus cooool que Fonzy. Le plugin que je propose cr&#233;&#233; automatiquement des groupes de diapositifs par billet, redimensionne la visionneuse &#224; la taille de [...]]]></description>
			<content:encoded><![CDATA[<p>Anne se plaint de son site. Il n&#8217;est pas aussi simple que les espaces MSN. Elle aurait aimer que le script <a href="http://www.huddletogether.com/projects/lightbox2/">Lightbox</a> soit encore plus <em>coool</em>. Soit, je vais le rendre plus <em>cooool</em> que Fonzy. </p>
<p>Le plugin que je propose cr&eacute;&eacute; automatiquement des groupes de diapositifs par billet, redimensionne la visionneuse &agrave; la taille de l&#8217;&eacute;cran, et permet de changer d&#8217;image toutes les 10 secondes. Avec ce syst&egrave;me souple, le blog de WordPress n&#8217;a pas de soucis &agrave; se faire. Il peut g&eacute;rer ses images tr&egrave;s simplement. Enfin, le lecteur n&#8217;a qu&#8217;&agrave; cliquer sur le petit bouton diaporama et se laisser naviguer entre les diff&eacute;rentes photos.</p>
<h3>Titres et descriptions</h3>
<p>Anne aime triturer ses photos, elle passe des heures &agrave; r&eacute;&eacute;crire les titres et descriptions (le plugin <a href="http://ideasilo.wordpress.com/2006/08/10/tam-attachment/">Tam Attachment</a> permet de le faire tr&egrave;s simplement). Seulement, les fonctionnements de Lightbox et de WordPress ne permettent pas de mettre &agrave; jour les billets automatiquement avec les nouvelles donn&eacute;es &eacute;ditoriales. Elle &eacute;tait oblig&eacute;e de r&eacute;&eacute;crire ses textes dans ses billets.</p>
<p>C&#8217;est fait. J&#8217;ai &eacute;crit un petit bout de code pour que les attributs de ses liens et de ses images soient automatiquement mis &agrave; jour lors de l&#8217;affichage sur le site.</p>
<h3>Les images sont plus grandes que l&#8217;&eacute;cran</h3>
<p>Le second d&eacute;faut de Lightbox est qu&#8217;il ne redimensionne pas les images trop grandes pour les &eacute;crans. N&#8217;ayant pas de logiciels de manipulation d&#8217;image, Anne d&eacute;pose directement sur son site les photographies originales de son appareil num&eacute;rique.</p>
<p>Pour cela, j&#8217;ai compl&eacute;t&eacute; le code du javascript pour qu&#8217;il redimensionne les images plus grandes que l&#8217;&eacute;cran.</p>
<h3>Diaporama</h3>
<p>Derni&egrave;re critique&nbsp;: pourquoi il n&#8217;y a pas de diaporama comme sur MSN space<span class="fine">&nbsp;</span>? C&#8217;est vrai &ccedil;a<span class="fine">&nbsp;</span>! Pourquoi<span class="fine">&nbsp;</span>? Bin j&#8217;ai encore adapt&eacute; le code pour qu&#8217;il change automatiquement d&#8217;image toutes les 10 secondes. Maintenant il y a un petit bouton sur la visionneuse. En cliquant dessus, l&#8217;utilisateur active le diaporama. </p>
<h3>Installation, Utilisation</h3>
<p>D&eacute;compressez le r&eacute;pertoire dans votre r&eacute;pertoire des plugins. Puis, via l&#8217;interface d&#8217;administration, activez le plugin <em>lightbox+</em>. C&#8217;est tout<span class="fine">&nbsp;</span>! Il n&#8217;y a pas d&#8217;autres boutons, d&#8217;autres param&egrave;tres, utilisez WordPress comme d&#8217;habitude. les diff&eacute;rents scripts se chargent de formater vos images lors de l&#8217;affichage sur votre site.</p>
<p>Il n&#8217;y a plus d&#8217;excuse<span class="fine">&nbsp;</span>! Testez<span class="fine">&nbsp;</span>!</p>
<div class="download">
<h3>T&eacute;l&eacute;chargement <a id="p77" href="http://cdn.john-noone.com/2006/10/lightbox-plus.zip" title="Lightbox+">lightbox-plus.zip</a></h3>
<p>Version 0.1.2 du 25 octobre 2006</p></div>
<h3>Corrections</h3>
<ul>
<li>23/10/06&nbsp;: Correction des urls</li>
<li>25/10/06&nbsp;: Correction du formatage des descriptions, et mise &agrave; jour de la &laquo;&nbsp;cartographie&nbsp;&raquo; sur le script</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2006/10/22/lightbox/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>Identikit</title>
		<link>http://www.john-noone.com/2006/10/08/identikit/</link>
		<comments>http://www.john-noone.com/2006/10/08/identikit/#comments</comments>
		<pubDate>Sun, 08 Oct 2006 14:05:18 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[identité]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/2006/10/08/identikit/</guid>
		<description><![CDATA[J&#8217;avais d&#233;j&#224; publi&#233; une s&#233;rie de plugins pour d&#233;terminer des avatars distants. Ces plugins fonctionne bien, hormis un probl&#232;me de performance lors de la soumission d&#8217;un commentaire. Seulement, j&#8217;avais besoin de souplesse pour administrer ces images. Enfin, j&#8217;avais envie d&#8217;&#233;crire un plugin qui ne se contente plus de n&#8217;afficher que des images, mais qui offre [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;avais d&eacute;j&agrave; publi&eacute; une s&eacute;rie de plugins pour d&eacute;terminer des avatars distants. Ces plugins fonctionne bien, hormis un probl&egrave;me de performance lors de la soumission d&#8217;un commentaire. Seulement, j&#8217;avais besoin de souplesse pour administrer ces images. Enfin, j&#8217;avais envie d&#8217;&eacute;crire un plugin qui ne se contente plus de n&#8217;afficher que des images, mais qui offre une v&eacute;ritable interface d&#8217;administration.</p>
<p>Donc j&#8217;&eacute;cris ce nouveau plugin pour qu&#8217;il g&egrave;re toujours les pavatars, favatars et gravatars, mais qu&#8217;il int&egrave;gre aussi de nouvelles notions&nbsp;: les favicons et les avatars locaux. Voil&agrave;<span class="fine">&nbsp;</span>! Concr&egrave;tement ce plugin est utilis&eacute; pour cr&eacute;er les identit&eacute;s visuelles de chaque contributeurs (auteurs et commentateurs). De plus, il permet aux auteurs d&#8217;h&eacute;berger leurs images sur le site (donc sans passer par un site distant), avec une jolie interface priv&eacute;e. Enfin, il ins&egrave;re automatiquement les bonnes balises dans le front site.</p>
<h3>S&eacute;mantique</h3>
<p>J&#8217;use et abuse des urls rewritings qu&#8217;offre WordPress. En effet, les urls fournies par le plugins ne pointent pas vers le r&eacute;pertoire de stockage, mais vers une url lisible par les humains.</p>
<p>Les xhtml g&eacute;n&eacute;r&eacute;s comportent toutes les classes css microformat&eacute;es pour d&eacute;clar&eacute;es des images dans les hcard et hresume.</p>
<p>J&#8217;ai int&eacute;gr&eacute; un widget pour cr&eacute;&eacute; une hcard dans les menus de navigations.<br />
<a class="imagelink" href="http://cdn.john-noone.com/2006/10/screenshot-1.jpg" title="le-widget"><img id="image61" src="http://cdn.john-noone.com/2006/10/screenshot-1.miniature.jpg" alt="le-widget" /></a><br />
Le code g&eacute;n&eacute;r&eacute; est&nbsp;:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">afficher-lauteur</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">widget widget_author</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">h3</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">='</span><span style="color: #00008b;">widgettitle</span><span style="color: Gray;">'</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Xavier</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">h3</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;</span><span style="color: Green;">ul</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">vcard entry-author author</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">fn</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">style</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">display:none</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Xavier</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">logo</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">url fn</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">[...]/author/admin/</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">title</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">[...]</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">[...]/author/admin/pavatar.png</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">pavatar logo</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">alt</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">admin</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">summary</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">I am the one !</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>Enfin, dans le cadre des avatars locaux, ces avatars sont d&eacute;clar&eacute;s comme &eacute;tant des Pavatars.</p>
<h3>Performances accrues</h3>
<p>Maintenant, au lieu d&#8217;afficher des images distantes, il h&eacute;berge directement les images qu&#8217;il a trouv&eacute;. D&#8217;autre part, il utilise le syst&egrave;me de cache de WordPress pour acc&eacute;l&eacute;rer le calcul.</p>
<p>En gros, quand quelqu&#8217;un poste un commentaire, le syst&egrave;me d&#8217;abord analyser les caches associ&eacute;s &agrave; ses informations personnelles. Si il en trouve un, il l&#8217;affiche. Sinon, le syst&egrave;me va essayer de trouver un avatar distant. Si il le trouve, il le t&eacute;l&eacute;charge et cr&eacute;er un cache avec un long d&eacute;lais avant expiration. Sinon il cr&eacute;e un cache avec un court d&eacute;lais. Ainsi, le syst&egrave;me fait l&#8217;&eacute;conomie de calcul inutiles &agrave; chaque soumission de commentaires.</p>
<h3>Utilisation</h3>
<p>Pour afficher l&#8217;avatar du commentateur il suffit d&#8217;ins&eacute;rer l&#8217;un de ces codes dans la boucle des commentaire&nbsp;:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">comment_author_avatar</span><span style="color: Olive;">(</span><span style="color: #00008b;">$r</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p> affiche le code xhtml redimensionn&eacute; &agrave; $r pixels du commentateur actuel.</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #00008b;">$avatar</span><span style="color: Gray;"> = </span><span style="color: Blue;">get_comment_author_avatar</span><span style="color: Olive;">(</span><span style="color: #00008b;">$r</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p> retourne l&#8217;adresse de l&#8217;avatar en php</p>
<p>Pour afficher l&#8217;avatar pertinent de l&#8217;auteur, il suffit d&#8217;ins&eacute;rer ce code dans la boucle author ou single&nbsp;:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">the_avatar</span><span style="color: Olive;">(</span><span style="color: #00008b;">$r</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p> affiche le code xhtml redimensionn&eacute; &agrave; $r pixels de l&#8217;auteur actuel.</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #00008b;">$avatar</span><span style="color: Gray;"> = </span><span style="color: Blue;">get_the_avatar</span><span style="color: Olive;">(</span><span style="color: #00008b;">$r</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p> retourne l&#8217;adresse de l&#8217;avatar en php</p>
<p><a title="les-commentaires" class="imagelink" href="http://cdn.john-noone.com/2006/10/screenshot-2.jpg"><img alt="les-commentaires" id="image62" src="http://cdn.john-noone.com/2006/10/screenshot-2.miniature.jpg" /></a> <a title="interface-auteur" class="imagelink" href="http://cdn.john-noone.com/2006/10/screenshot-3.jpg"><img alt="interface-auteur" id="image63" src="http://cdn.john-noone.com/2006/10/screenshot-3.miniature.jpg" /></a> <a title="interface-favicon" class="imagelink" href="http://cdn.john-noone.com/2006/10/screenshot-4.jpg"><img alt="interface-favicon" id="image64" src="http://cdn.john-noone.com/2006/10/screenshot-4.miniature.jpg" /></a></p>
<h3>Enfin</h3>
<p>Identikit est aussi le titre du dernier album des Burning Airlines. Pour tous les amoureux du DC Sound, je ne peux que leurs recommander l&#8217;&eacute;coute de cet album.</p>
<div class="download">
<h3>T&eacute;l&eacute;chargement <a id="p66" href="http://cdn.john-noone.com/2006/10/identikit.zip" title="identikit.0.1">identikit.zip</a></h3>
<p>Version 0.1.1 du 15 octobre 2006</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2006/10/08/identikit/feed/</wfw:commentRss>
		<slash:comments>60</slash:comments>
		</item>
		<item>
		<title>Tabindex automatiques</title>
		<link>http://www.john-noone.com/2006/08/05/tabindex-automatiques/</link>
		<comments>http://www.john-noone.com/2006/08/05/tabindex-automatiques/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 22:48:27 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.john-noone.com/2006/08/05/tabindex-automatiques/</guid>
		<description><![CDATA[Comme 5000 autres adh&#233;rents, je me suis d&#233;clar&#233; sur Opquast. Ce site propose une grille d&#8217;&#233;valuation de bonnes pratiques. Pour un site naissant, PriceMister s&#8217;en tire assez bien, j&#8217;ai valid&#233; la moiti&#233; des questions. Pourtant, je p&#234;che sur la cinqui&#232;me, qui dit que&#160;&#187; La navigation reste possible sur l&#8217;ensemble du site en utilisant exclusivement le [...]]]></description>
			<content:encoded><![CDATA[<p>Comme <a href="http://blog.opquast.com/2006/05/17/86-5000-utilisateurs-et-toujours-plus-dinnovations">5000 autres adh&eacute;rents</a>, je me suis d&eacute;clar&eacute; sur <a href="http://www.opquast.com/">Opquast</a>. Ce site propose une grille d&#8217;&eacute;valuation de bonnes pratiques. Pour un site naissant, <a href="http://pricemister.info">PriceMister</a> s&#8217;en tire assez bien, j&#8217;ai valid&eacute; la moiti&eacute; des questions. Pourtant, je p&ecirc;che sur la cinqui&egrave;me, qui dit que&nbsp;&raquo;	La navigation reste possible sur l&#8217;ensemble du site en utilisant exclusivement le clavier&nbsp;&raquo;. Soit sans manipuler la souris.</p>
<p>Il existe heureusement des attributs html qui permettent de naviguer avec la touche tabulation, ou des combinaisons de touches du type alt+lettre. C&#8217;est pourtant simple de passer cette 5me &eacute;tape<span class="fine">&nbsp;</span>!</p>
<h3>Oui et non</h3>
<p>WordPress ne g&egrave;re pas les tabindexs ni les accesskeys en php. Les coder en dur est une solution, mais bien que le PriceMister est &eacute;pur&eacute;, il reste touffu en petits modules (formulaires &#038; groupes de liens). Par exemple, sur certaines pages, Il peut y avoir&nbsp;:</p>
<ul>
<li>le power search dans l&#8217;en-t&ecirc;te</li>
<li>les pages dans l&#8217;en-t&ecirc;te</li>
<li>la navigation dans la barre lat&eacute;rale</li>
<li>la gestion du compte dans la barre lat&eacute;rale</li>
<li>l&#8217;upload d&#8217;images et le formulaire de commentaires dans le corps de la page</li>
</ul>
<p>Avec autant d&#8217;&eacute;l&eacute;ment, il est difficile de coder en dur les attributs tabindex de chaque champ. De plus, il n&#8217;existe pas de plugin WordPress pour cel&agrave;, c&#8217;est pourquoi je propose le mien. Il suffit d&#8217;ins&eacute;rer ce bout de code dans le fichier function.php de votre th&egrave;me.</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">tabindex</span><span style="color: Olive;">(</span><span style="color: #00008b;">$arg</span><span style="color: Gray;">=</span><span style="color: #8b0000;">''</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">is_int</span><span style="color: Olive;">(</span><span style="color: #00008b;">$arg</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: #00008b;">$_SESSION</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">$tabindex</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$arg</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">tabindex='</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">. </span><span style="color: #00008b;">$_SESSION</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">$tabindex</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> .</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">'</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: #00008b;">$_SESSION</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">$tabindex</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">++;</span></li>
<li><span style="color: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">tabindex='</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">. </span><span style="color: #00008b;">$_SESSION</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">$tabindex</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> .</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">'</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">tabindexStart</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: #00008b;">$_SESSION</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">$tabindex</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">add_action</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">init</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">tabindexStart</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p>Une variable de session  $_SESSION['$tabindex'] qui permet de garder une information persistante. C&#8217;est dans cette fonction que je stocke la derni&egrave;re occurence de ma boucle.<br />
Elle est r&eacute;initialis&eacute; lors du chargement de la page. Ensuite, &agrave; chaque appels de la fonction, elle s&#8217;incr&eacute;mente d&#8217;une unit&eacute;. Il suffit alors de l&#8217;int&egrave;grer dans mes fichiers de templates ainsi&nbsp;:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt; input type=&quot;text&quot; value=&quot;&quot;&nbsp; &nbsp;/&gt;</li>
<li>&lt; input type=&quot;submit&quot; value=&quot;Envoyer&quot;&nbsp; &nbsp;/&gt;</li></ol></div>
<p>qui sera rendu ainsi&nbsp;:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt; input type=&quot;text&quot; value=&quot;&quot;&nbsp; tabindex=&quot;1&quot;&nbsp; /&gt;</li>
<li>&lt; input type=&quot;submit&quot; tabindex=&quot;2&quot; value=&quot;Envoyer&quot; /&gt;</li></ol></div>
<p>Cette m&eacute;thode fonctionne parfaitement pour les pages structur&eacute;es logiquement. En cliquant sur la touche tabulation, le focus saute sur l&#8217;&eacute;l&eacute;ment qui suit dans la page.</p>
<p>La fonction peut accepter comme argument un nombre entier, afin de mentionner l&#8217;ordre de recherche par tabulateur. En effet, en passant d&#8217;un &eacute;l&eacute;ment &agrave; l&#8217;autre avec le tabulateur, c&#8217;est d&#8217;abord l&#8217;&eacute;l&eacute;ment avec le plus petit chiffre tabindex qui sera trouv&eacute;, puis le deuxi&egrave;me&#8230;</p>
<p>Par exemple, ma page est structur&eacute;e ainsi&nbsp;:</p>
<ol>
<li>en-t&ecirc;te&nbsp;: un power search, des pages annexes,</li>
<li>corps de texte avec un formulaire de commentaires</li>
<li>barre de navigation comporte la r&eacute;elle navigation</li>
</ol>
<p>Dans cet exemple, je souhaite que la navigation soit discontinue, donc j&#8217;applique ces fonctions dans le 1<sup>er</sup> &eacute;l&eacute;ments de chaque partie&nbsp;:</p>
<ol>
<li>power search > tabindex(&laquo;&nbsp;1&#8243;)<span class="fine">&nbsp;</span>;</li>
<li>navigation > tabindex(&laquo;&nbsp;10&#8243;)<span class="fine">&nbsp;</span>;</li>
<li>pages annexes > tabindex(&laquo;&nbsp;100&#8243;)<span class="fine">&nbsp;</span>;</li>
<li>formulaire de commentaire > tabindex(&laquo;&nbsp;200&#8243;)<span class="fine">&nbsp;</span>;</li>
</ol>
<p>Et l&agrave; c&#8217;est magique<span class="fine">&nbsp;</span>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.john-noone.com/2006/08/05/tabindex-automatiques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

