<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://alt-i.fr/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Alt-I, des informations alternatives - Développement</title>
  <link>http://alt-i.fr/</link>
  <atom:link href="http://alt-i.fr/feed/category/Developpement/rss2" rel="self" type="application/rss+xml"/>
  <description>Alt-I est un blog traitant d'informatique généraliste et de cultures alternatives. Veille techno, conseils, développement, aggrémenté d'un peu de fun.

web web2.0 web2 développement programmation informatique dev webdev javascript js ajax dhtml library librairie YUI jQuery Mootools informations news actualité net internet safari webkit firefox gecko apple mac mac os x iPhone sdk troll geek</description>
  <language>fr</language>
  <pubDate>Wed, 08 Feb 2012 22:05:17 +0100</pubDate>
  <copyright>Creative Commons By-NC-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Adieu Wikio Experts…</title>
    <link>http://alt-i.fr/post/2011/09/03/adieu-Wikio-Experts-nyan-cat</link>
    <guid isPermaLink="false">urn:md5:365d1f9e2f7b7be944dbc3215a9dc87c</guid>
    <pubDate>Sat, 03 Sep 2011 14:58:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>Firebug</category><category>Javascript</category><category>MVC</category><category>Overblog</category><category>vidéos</category><category>Wikio</category><category>Wikio Group</category><category>YUI</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://alt-i.fr/images/dev/logo.png&quot; alt=&quot;Wikio Experts&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; title=&quot;Wikio Experts, sept. 2011&quot; /&gt;Comme vous l'avez peut être lu, &lt;strong&gt;Wikio Group&lt;/strong&gt; a subit quelques changements. Après avoir &lt;a href=&quot;http://www.frederic-montagnon.com/article-wikio-group-devient-ebuzzing-et-leve-25m-82940148.html&quot; hreflang=&quot;fr&quot;&gt;levé quelques 17 millions d'euros&lt;/a&gt;, le groupe a été restructuré et renommé. Nous parlerons désormais du &lt;strong&gt;groupe EBuzzing&lt;/strong&gt;, du nom de la société la plus rentable. &lt;strong&gt;OverBlog&lt;/strong&gt; reste aussi la tête de proue du social media. Et Nomao continue sa route tranquille. Ainsi, Wikio et Wikio Experts disparaissent.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Wikio Experts&lt;/strong&gt;, c'est le projet sur lequel je travaillais depuis un an et dont j'étais en train de développer la v2 pour Septembre. Évidemment, tout ce travail ne verra jamais le jour puisque le projet a été définitivement abandonné, mais rien ne se perd&amp;nbsp;: j'ai gagné énormément d'expérience et de savoir faire qui sera fort utile pour OverBlog dont je re-rejoins l'équipe dès Lundi.&lt;br /&gt;
Le projet Wikio Experts aura été une aventure très enrichissante pendant un an en terme de techniques et de relations humaines. Nous avons écrit le projet from scratch avec des nouvelles technos&amp;nbsp;: Jelix 1.2, YUI 3, Node.js… et nous avons collaboré avec une équipe produit et une armada de community manager. Nous, c'est &lt;a href=&quot;https://plus.google.com/102699460086604363152/about&quot; hreflang=&quot;fr&quot;&gt;Yannick&lt;/a&gt;, core développeur, et moi, front développeur.&lt;/p&gt;


&lt;p&gt;Avant de tourner définitivement la page, j'aimerais vous montrer ce qui aurait du être la version 2.0 de Wikio Experts. Une interface écrite en javascript MVC client side avec YUI3. Comme je l'ai dit plus haut, rien ne se perd, tout cela servira à d'autres projets &lt;img src=&quot;/themes/Alt-I-3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;h3&gt;Choix du sujet&lt;/h3&gt;


&lt;p&gt;L'interface de choix de sujets devait afficher deux listes différentes à partir d'un mot clé choisi par l'utilisateur. Pour optimiser les requêtes, je récupérais 100 sujets correspondant au mot clé, et les faisait trier et afficher par le client. Ainsi, pas de requête inutile lors d'un tri par titre, par prix ou un filtre par catégorie. Grâce à l'historique HTML5, le mot clé tapé dans le champ prenait sa place dans le pathname et changeait l'url par /write/search/motclé et permettait de revenir à la précédente recherche grâce au bouton back du browser sans recharger la page.&lt;/p&gt;

&lt;iframe width=&quot;500&quot; height=&quot;349&quot; src=&quot;http://www.youtube.com/embed/BwRKQYhSkE8?hl=fr&amp;fs=1&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;



&lt;h3&gt;Édition de sujet&lt;/h3&gt;


&lt;p&gt;L'interface de rédaction se voulait plus libre dans la structuration des articles tout en imposant un cadre sémantique. Nous avions donc remplacé l'unique éditeur Wysiwyg par un système de sections de plusieurs types que vous auriez pu librement insérer où bon vous semble et ainsi commencer par une section liste pour afficher la liste des ingrédients d'une recette, puis 3 sections texte pour rédiger les différentes parties de la recette pour conclure sur une section images pour afficher un diaporama de photos du dessert en question. Chaque modification de l'article était sauvegardée en localStorage pour permettre une fonction &quot;annuler/rétablir&quot; pour chaque état de l'article (caractère tapé, section supprimée, déplacée, etc).&lt;/p&gt;

&lt;iframe width=&quot;500&quot; height=&quot;349&quot; src=&quot;http://www.youtube.com/embed/hiA25VgKkWQ?hl=fr&amp;fs=1&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
</description>
    
    
    
          <comments>http://alt-i.fr/post/2011/09/03/adieu-Wikio-Experts-nyan-cat#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2011/09/03/adieu-Wikio-Experts-nyan-cat#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/825</wfw:commentRss>
      </item>
    
  <item>
    <title>TwitterTrackback n'est plus</title>
    <link>http://alt-i.fr/post/2011/07/06/TwitterTrackback-n-est-plus-Backtype</link>
    <guid isPermaLink="false">urn:md5:82b4d227e869c4cdd46d44aa3cb99c38</guid>
    <pubDate>Wed, 06 Jul 2011 10:17:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>Dotclear</category><category>extension</category><category>Twitter</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://alt-i.fr/pages/TwitterTrackback-extension-pour-trackbacker-les-tweets-retrolien-plugin-dotclear&quot; hreflang=&quot;fr&quot;&gt;TwitterTrackback&lt;/a&gt; était une extension pour Dotclear de ma confection qui permettait de trouver les tweets ayant lié les articles de votre blog et de les ajouter en tant que rétrolien. Cette extension était basée sur le service offert par Backtype.com.&lt;/p&gt;


&lt;p&gt;Malheureusement, &lt;a href=&quot;http://www.backtype.com/&quot; hreflang=&quot;en&quot;&gt;Backtype a été racheté par Twitter&lt;/a&gt; et a coupé ses services sans préavis. L'API est donc dorénavant inaccessible, et mon plugin ne peut donc plus récupérer de nouvelles données. Il est donc totalement inutile. Vous pouvez le désactiver, ou même le supprimer.&lt;/p&gt;


&lt;p&gt;On peut quand même espérer que cet arret de soit que temporaire et que Twitter nous propose dans quelques temps, sous sa marque, les mêmes services que nous offrait Backtype.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://alt-i.fr/images/Scrinchoutes/backtype_acquired_by_twitter.png&quot; title=&quot;Backtype racheté par Twitter&quot;&gt;&lt;img src=&quot;http://alt-i.fr/images/Scrinchoutes/.backtype_acquired_by_twitter_m.jpg&quot; alt=&quot;Backtype racheté par Twitter&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Backtype racheté par Twitter, juil. 2011&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2011/07/06/TwitterTrackback-n-est-plus-Backtype#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2011/07/06/TwitterTrackback-n-est-plus-Backtype#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/821</wfw:commentRss>
      </item>
    
  <item>
    <title>Cherokee et PHP</title>
    <link>http://alt-i.fr/post/2011/06/09/Cherokee-et-PHP-display-errors</link>
    <guid isPermaLink="false">urn:md5:45fc2a49b08eaa7031b6d0255ebd3792</guid>
    <pubDate>Thu, 09 Jun 2011 14:22:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>Cherokee</category><category>PHP</category><category>serveur</category><category>web</category>    
    <description>    &lt;p&gt;Un petit article en guise de note de rappel si j'oublie et qui pourra servir à d'autres, j'en suis sur, pour configurer son serveur Cherokee et PHP afin d'avoir des VHost avec une config PHP différente.&lt;/p&gt;


&lt;p&gt;En l'occurence, mon serveur sert à la fois des sites en production et des sites en développement et je voulais simplement que PHP affiche les erreurs et autres notices plutôt que de les logguer, comme il était spécifié dans le php.ini. PHP étant exécuté en tant que CGI avec Cherokee, la solution est de créer une nouvelle source de donnée via une autre instance de PHP qui chargera un autre fichier ini.&lt;/p&gt;


&lt;p&gt;Nous allons commencer par créer le nouveau fichier php.ini. Je l'ai mis dans &lt;code&gt;/etc/php/cgi/php.dev.ini&lt;/code&gt;, à coté de celui par défaut.&lt;/p&gt;


&lt;p&gt;Rendons nous maintenant dans l'admin de Cherokee. Dans la partie Sources, nous allons dupliquer la source &quot;PHP Interpreter&quot; et la renommer &quot;PHP Interpreter DEV&quot;. Nous allons changer le port d'écoute par celui que vous voulez. J'ai mis 47991 car celui par défaut était 47990. Puis nous allons modifier la commande de l'interpréteur pour qu'elle appelle php-cgi en chargeant notre php.dev.ini en renseignant le champs par la suivante&amp;nbsp;: &lt;code&gt;/usr/bin/php-cgi -b 127.0.0.1:47991 -c /etc/php/cgi/php.dev.ini&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://alt-i.fr/images/dev/cherokee-admin-sources.jpg&quot; alt=&quot;Administration Cherokee - Sources&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Administration Cherokee - Sources, juin 2011&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Nous pouvons maintenant nous rendre dans la partie VServer, choisir le serveur virtuel concerné, allez dans la partie &quot;Behavior&quot;, et choisir &quot;Extensions php&quot;. Dans l'onglet  &quot;Gestionnaires&quot;, tout en bas dans la section &quot;Affectation des Sources d'Information&quot;, vous allez choisir le serveur d'application &quot;PHP Interpreter DEV&quot;. Il va apparaitre au dessus dans le tableau intitulé &quot;Sources d'Information&quot; et dans lequel vous supprimerez la précédente source &quot;PHP Interpreter&quot;.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://alt-i.fr/images/dev/cherokee-admin-vservers.jpg&quot; alt=&quot;Administration Cherokee - VServers&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Administration Cherokee - VServers, juin 2011&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Ne reste plus qu'à sauvegarder et à demander un redémarrage gracieux. Et voilà&amp;nbsp;: &lt;code&gt;Parse error: syntax error, unexpected ';' in /…/script.php on line 27&lt;/code&gt; \o/&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2011/06/09/Cherokee-et-PHP-display-errors#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2011/06/09/Cherokee-et-PHP-display-errors#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/818</wfw:commentRss>
      </item>
    
  <item>
    <title>Background multiples en CSS 3</title>
    <link>http://alt-i.fr/post/2011/06/08/Background-multiples-en-CSS-3</link>
    <guid isPermaLink="false">urn:md5:a2a8a1e0d07ac3b4dc0489c71df84d21</guid>
    <pubDate>Wed, 08 Jun 2011 14:23:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>CSS</category><category>css3</category><category>texture</category>    
    <description>    &lt;p&gt;L'une des avancées de CSS 3 est la possibilité d'appliquer plusieurs background différents à un même élément. Jusqu'ici, si on voulait avoir par exemple plusieurs lien avec le même background plus une icone propre à chaque lien, il fallait se taper une image différente pour chaque lien ou ajouter un élément vide de type span à qui on appliquerait le background de l'icone. Maintenant, il suffit d'appliquer la texture unique et l'icone. Mais là où ça devient particulièrement intéressant, c'est quand on veut jouer avec des textures colorées.&lt;/p&gt;


&lt;p&gt;Prenons une image de texture en png transparent et en niveau de gris&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://alt-i.fr/images/texture_brique.png&quot; alt=&quot;texture&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Cette texture servira de masque à notre élément, puis on appliquera par dessus une couleur qui permettra de colorer l'élément. J'expliquerais éventuellement dans un autre article comment créer la texture avec Photoshop, c'est assez simple en fait.&lt;/p&gt;


&lt;p&gt;Grâce aux propriétés suivantes&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;css syntaxehl css&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.textured&lt;/span&gt; &lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/images/texture_brique.png'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.textured&lt;/span&gt;.&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;blue&lt;/span&gt; &lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/images/texture_brique.png'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;blue&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.textured&lt;/span&gt;.&lt;span style=&quot;color: #993333;&quot;&gt;red&lt;/span&gt; &lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/images/texture_brique.png'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;red&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.textured&lt;/span&gt;.&lt;span style=&quot;color: #993333;&quot;&gt;green&lt;/span&gt; &lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background-image&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/images/texture_brique.png'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		-webkit-gradient&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			linear&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;left&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;bottom&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;right&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;top&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;195&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;173&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;29&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;143&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background-image&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/images/texture_brique.png'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		-moz-linear-gradient&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;left&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;bottom&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;195&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;173&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;0%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;29&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;143&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;100%&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.textured&lt;/span&gt;.&lt;span style=&quot;color: #993333;&quot;&gt;yellow&lt;/span&gt; &lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background-image&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/images/texture_brique.png'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		-webkit-gradient&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			linear&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;left&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;bottom&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;right&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;top&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;248&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;173&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;143&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;79&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background-image&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/images/texture_brique.png'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		-moz-linear-gradient&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;left&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;bottom&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;248&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;173&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;0%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;143&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;79&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;100%&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.textured&lt;/span&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.lsd&lt;/span&gt; &lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background-image&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/images/texture_brique.png'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		-webkit-gradient&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			linear&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;left&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;bottom&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;right&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;top&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0.1&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;153&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0.2&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;242&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0.3&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;68&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0.4&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;183&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0.5&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;98&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0.6&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;60&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0.7&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;213&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0.8&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;102&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0.9&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			color-stop&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background-image&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/images/texture_brique.png'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		-moz-linear-gradient&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;left&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;bottom&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;0%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;153&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;10%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;242&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;20%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;68&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;30%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;183&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;40%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;98&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;50%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;60&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;60%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;213&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;70%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;102&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;80%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;90%&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #993333;&quot;&gt;rgb&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;100%&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;…appliquées aux élements suivants&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;javascript syntaxehl javascript&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;ul&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;li &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;textured&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;Texturé&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;li &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;textured blue&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;Texturé et bleu&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;li &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;textured red&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;Texturé et rouge&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;li &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;textured green&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;Texturé et dégradé vert&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;li &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;textured yellow&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;Texturé et jaune dégradé vert&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;li &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;textured lsd&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;Texturé et LSD&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;ul&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;

&lt;style&gt;
#cssTextured {
	list-style: none;
	margin: 0;
	padding: 0;
}
#cssTextured li {
	display: block;
	float: left;
	width: 49%;
	line-height: 100px;
	margin-left: 1%;
	margin-top: 1%;
	font-weight: bold;
	font-family: 'helvetica neue', helvetica;
	font-size: 14px;
	text-align: center;
	color: white;
	text-shadow: -1px -1px 1px black;
}
#cssTextured li:nth-child(odd) {
	margin-left: 0;
	margin-right: 1%;
}
.textured {
	background: url('/images/texture_brique.png');
}
.textured.blue {
	background:
		url('/images/texture_brique.png'),
		blue;
}
.textured.red {
	background:
		url('/images/texture_brique.png'),
		red;
}
.textured.green {
	background-image:
		url('/images/texture_brique.png'),
		-webkit-gradient(
			linear,
			left bottom,
			right top,
			color-stop(0, rgb(195,255,173)),
			color-stop(1, rgb(29,143,0))
	);
	background-image:
		url('/images/texture_brique.png'),
		-moz-linear-gradient(
			left bottom,
			rgb(195,255,173) 0%,
			rgb(29,143,0) 100%
	);
}
.textured.yellow {
	background-image:
		url('/images/texture_brique.png'),
		-webkit-gradient(
			linear,
			left bottom,
			right top,
			color-stop(0, rgb(255,248,173)),
			color-stop(1, rgb(143,79,0))
	);
	background-image:
		url('/images/texture_brique.png'),
		-moz-linear-gradient(
			left bottom,
			rgb(255,248,173) 0%,
			rgb(143,79,0) 100%
	);
}
.textured.lsd {
	background-image:
		url('/images/texture_brique.png'),
		-webkit-gradient(
			linear,
			left bottom,
			right top,
			color-stop(0, rgb(255,0,0)),
			color-stop(0.1, rgb(255,153,0)),
			color-stop(0.2, rgb(255,242,0)),
			color-stop(0.3, rgb(68,255,0)),
			color-stop(0.4, rgb(0,255,183)),
			color-stop(0.5, rgb(0,98,255)),
			color-stop(0.6, rgb(60,0,255)),
			color-stop(0.7, rgb(213,0,255)),
			color-stop(0.8, rgb(255,0,102)),
			color-stop(0.9, rgb(0,0,0)),
			color-stop(1, rgb(255,255,255))
	);
	background-image:
		url('/images/texture_brique.png'),
		-moz-linear-gradient(
			left bottom,
			rgb(255,0,0) 0%,
			rgb(255,153,0) 10%,
			rgb(255,242,0) 20%,
			rgb(68,255,0) 30%,
			rgb(0,255,183) 40%,
			rgb(0,98,255) 50%,
			rgb(60,0,255) 60%,
			rgb(213,0,255) 70%,
			rgb(255,0,102) 80%,
			rgb(0,0,0) 90%,
			rgb(255,255,255) 100%
	);
}
&lt;/style&gt;
&lt;ul id=&quot;cssTextured&quot;&gt;
	&lt;li class=&quot;textured&quot;&gt;Texturé&lt;/li&gt;
	&lt;li class=&quot;textured blue&quot;&gt;Texturé et bleu&lt;/li&gt;
	&lt;li class=&quot;textured red&quot;&gt;Texturé et rouge&lt;/li&gt;
	&lt;li class=&quot;textured green&quot;&gt;Texturé et dégradé vert&lt;/li&gt;
	&lt;li class=&quot;textured yellow&quot;&gt;Texturé et jaune devant, marron derrière&lt;/li&gt;
	&lt;li class=&quot;textured lsd&quot;&gt;Texturé et LSD&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Pour les visiteurs avec de vieux browsers tels que IE &lt;del&gt;cassez vous !&lt;/del&gt;, voici un aperçu de ce que vous verriez avec un navigateur à jour&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://alt-i.fr/images/preview_css3_multi_background.png&quot; alt=&quot;Preview CSS 3 multi background&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Preview CSS 3 multi background, juin 2011&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Voilà, avec une texture plus jolie et mieux travaillée, on peut faire des trucs vraiment très intéressants et surtout, gagner du temps quand le client a finalement changé d'avis sur la couleur du bouton &lt;img src=&quot;/themes/Alt-I-3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2011/06/08/Background-multiples-en-CSS-3#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2011/06/08/Background-multiples-en-CSS-3#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/817</wfw:commentRss>
      </item>
    
  <item>
    <title>Wikio Experts recrute… un expert !</title>
    <link>http://alt-i.fr/post/2011/04/18/Wikio-Experts-recrute-un-expert</link>
    <guid isPermaLink="false">urn:md5:d8af1af68b9e90f290b215b1ff474287</guid>
    <pubDate>Mon, 18 Apr 2011 14:37:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>développeur</category><category>emploi</category><category>offre</category><category>web</category>    
    <description>    &lt;h4&gt;Développeur front-end expert Javascript recherché&amp;nbsp;!&lt;/h4&gt;


&lt;p&gt;&lt;a href=&quot;http://alt-i.fr/images/series/david_caruso_sunglasses.jpeg&quot; title=&quot;CSI glasses&quot;&gt;&lt;img src=&quot;http://alt-i.fr/images/series/david_caruso_sunglasses.jpeg&quot; alt=&quot;CSI glasses&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; title=&quot;CSI glasses, avr. 2011&quot; /&gt;&lt;/a&gt;Le &lt;a href=&quot;http://www.wikiogroup.com/&quot; hreflang=&quot;fr&quot;&gt;groupe Wikio&lt;/a&gt; recrute un développeur web front-end pour travailler sur le projet &lt;a href=&quot;http://www.wikio-experts.com/&quot; hreflang=&quot;fr&quot;&gt;Wikio Experts&lt;/a&gt;. Wikio Experts est une plateforme de rédaction de contenu à la demande proposant une interface avancée permettant à des rédacteurs indépendants de produire, contre rémunération, du contenu publié sur tous les sites du groupe Wikio (&lt;a href=&quot;http://www.les-experts.com/&quot; hreflang=&quot;fr&quot;&gt;Les experts&lt;/a&gt;, &lt;a href=&quot;http://www.over-blog.com/&quot; hreflang=&quot;fr&quot;&gt;Overblog&lt;/a&gt;, &lt;a href=&quot;http://www.wikio.fr/shopping&quot; hreflang=&quot;fr&quot;&gt;Wikio Shopping&lt;/a&gt;, &lt;a href=&quot;http://www.plurielles.fr/&quot; hreflang=&quot;fr&quot;&gt;Plurielles&lt;/a&gt;…).&lt;/p&gt;


&lt;p&gt;Votre mission sera de maintenir et faire évoluer l'outil en intégrant les nouvelles fonctionnalités de l'équipe produit. Vous serez capable de construire des interfaces cohérentes, ergonomiques, accessibles à partir de spécifications produit. Vous saurez apporter un regard critique et constructif à l'application de façon générale. Vous aurez une sensibilité particulière par rapport à la qualité du code et au debuggage.&lt;/p&gt;


&lt;p&gt;Techniquement, en tant que développeur expérimenté, vous serez à l'aise avec les langages PHP5, Javascript, HTML5 et CSS3. Nous vous demanderons de maitriser particulièrement Javascript&amp;nbsp;: l'application utilise intensivement le framework &lt;a href=&quot;http://developer.yahoo.com/yui/3/&quot; hreflang=&quot;en&quot;&gt;Yahoo User Interface v3&lt;/a&gt; (YUI 3). La connaissance du framework PHP &lt;a href=&quot;http://jelix.org/&quot; hreflang=&quot;fr&quot;&gt;Jelix&lt;/a&gt; ou d'un autre framework MVC serait un plus.&lt;/p&gt;


&lt;p&gt;Le poste sera à pourvoir au sein de &lt;a href=&quot;http://goo.gl/maps/9oqx&quot; hreflang=&quot;fr&quot;&gt;l'équipe technologique Toulousaine&lt;/a&gt; du groupe Wikio (30 personnes) aux cotés des développeurs et administrateurs systèmes d'OverBlog et &lt;a href=&quot;http://fr.nomao.com/&quot; hreflang=&quot;fr&quot;&gt;Nomao&lt;/a&gt;, sous le soleil du sud où le barbecue s'allume dès que les nuages disparaissent.&lt;/p&gt;


&lt;p&gt;Je rajoute que vous travailleriez en binôme avec moi. Vous pouvez répondre à cette annonce directement auprès de &lt;a href=&quot;mailto:%68%61%64%72%69%65%6e%2e%6c%61%6e%6e%65%61%75%40%77%69%6b%69%6f%67%72%6f%75%70%2e%63%6f%6d&quot;&gt;moi&lt;/a&gt;, via &lt;a href=&quot;https://remixjobs.com/emploi/Developpement/Developpeur-front-end-expert-Javascript-H-F/5351&quot; hreflang=&quot;fr&quot;&gt;RemixJobs&lt;/a&gt; ou &lt;a href=&quot;http://emploi.alsacreations.com/offre-327826-Developpeur-front-expert-javascript.html&quot; hreflang=&quot;fr&quot;&gt;Alsacreations&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2011/04/18/Wikio-Experts-recrute-un-expert#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2011/04/18/Wikio-Experts-recrute-un-expert#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/811</wfw:commentRss>
      </item>
    
  <item>
    <title>Étrange erreur dans Git</title>
    <link>http://alt-i.fr/post/2011/02/22/Etrange-erreur-dans-Git</link>
    <guid isPermaLink="false">urn:md5:4c94b0b12a4322fdd58e2bb086f4ef13</guid>
    <pubDate>Tue, 22 Feb 2011 09:47:00 +0100</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>developpement</category><category>erreur</category><category>git</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/61932135@N00/3615752338&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3386/3615752338_d0a0167166_t.jpg&quot; alt=&quot;Git!&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;&lt;/a&gt;Un petit article sous forme de mémo qui j'espère sera bien indexé afin d'aider ceux qui tombent sur cette erreur étrange dont la solution est introuvable via Google.&lt;/p&gt;


&lt;p&gt;De temps en temps, il nous est arrivé à chacun de tomber sur l'erreur suivante lors d'un git push&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;bash syntaxehl bash&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;git&lt;/span&gt; push CENTRAL trunk&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;Pushing to &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;git&lt;/span&gt;:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//*****/&lt;/span&gt;home&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;git&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;wikioexperts&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;Looking up &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*****&lt;/span&gt; ... done.&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;Connecting to &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*****&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;port &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;***&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; ... &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;**&lt;/span&gt;.&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;**&lt;/span&gt;.&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;**&lt;/span&gt;.&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;**&lt;/span&gt; done.&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;fatal: bad object 827cab5ad47f48c83588b8ff76cf928dae1b18b7&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;error: pack-objects died with strange error&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;error: failed to push some refs to &lt;span style=&quot;color: #ff0000;&quot;&gt;'git://*****/home/git/wikioexperts/'&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Sans aucune solution pour s'en sortir. Des recherches sur Google parlent de mettre à jour GIT, de faire des git fsck ou je ne sais quelle autre manipulation inutile. On en vient assez rapidement à recloner le dépot from scratch et à repartir sur des bases saines… quand on a pas de branche locale ou de commit en cours&amp;nbsp;! Car dans ce cas, c'est le flip assuré.&lt;/p&gt;


&lt;p&gt;Et voici donc la commande magique qui sauvera vos longues heures de développement&amp;nbsp;! Dès l'apparition d'une strange error, il vous suffira de taper la commande suivante&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;bash syntaxehl bash&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;git&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;gc&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--prune&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;&lt;a href=&quot;http://www.kernel.org/pub/software/scm/git/docs/git-gc.html&quot; hreflang=&quot;en&quot;&gt;Lire la doc pour plus d'infos sur git-gc&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2011/02/22/Etrange-erreur-dans-Git#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2011/02/22/Etrange-erreur-dans-Git#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/809</wfw:commentRss>
      </item>
    
  <item>
    <title>Sélecteur de média et crop</title>
    <link>http://alt-i.fr/post/2011/02/19/Selecteur-de-media-et-crop-wikio-experts</link>
    <guid isPermaLink="false">urn:md5:42907228e9a3fe446a4a5ba303bd403f</guid>
    <pubDate>Sat, 19 Feb 2011 16:20:00 +0100</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>Experts</category><category>Flickr</category><category>Fotolia</category><category>Javascript</category><category>UI</category><category>web</category><category>webapp</category><category>Wikimedia</category><category>Wikio</category><category>YUI</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.wikio-experts.com/signup/from-8&quot; hreflang=&quot;fr&quot;&gt;&lt;img src=&quot;http://www.wikio-experts.com/themes/admin/img/logo.png&quot; alt=&quot;Wikio Experts&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; /&gt;&lt;/a&gt;Nouvelle fonctionnalité pour les rédacteurs de &lt;a href=&quot;http://www.wikio-experts.com/signup/from-8&quot; hreflang=&quot;fr&quot;&gt;Wikio Experts&lt;/a&gt; qui sera disponible dans les prochains jours. Ce nouveau sélecteur de média est bien plus pratique que le précédent, mais surtout, permet dorénavant de recadrer une image afin de mettre le focus sur la partie la plus importante de l'image et ne plus avoir de bandes blanches latérales, le tout afin de donner encore plus de qualité aux articles.&lt;/p&gt;


&lt;p&gt;L'onglet de recherche d'image, qui était jusqu'ici limité à FlickR sait rechercher sur plusieurs sources en même temps. Les banques d'images de Fotolia et Wikimedia viennent donc se mélanger aux résultats de FlickR. Il serait possible de rajouter d'autres sources en toute simplicité. Toutes les sources sont interrogées en même temps et leurs résultats sont affichés dès qu'ils arrivent, sans ordre de priorité&amp;nbsp;: le premier arrivé est le premier affiché. Autre amélioration&amp;nbsp;: la pagination est transparente et les résultats suivants sont chargés une fois que l'utilisateur a scrollé jusqu'en bas de la liste.&lt;/p&gt;


&lt;p&gt;Coté upload manuel, la progression du transfert est maintenant affiché. On ne le voit pas sur la vidéo, car c'est pas encore au point, mais ça marche en général :p&lt;/p&gt;


&lt;p&gt;Et on arrive à la vraie nouveauté&amp;nbsp;: l'interface de crop. Une fois l'image choisie, par la recherche ou après un upload, celle-ci s'affiche dans un cadre correspondant aux dimensions que le site de publication désire. Le rédacteur peut ainsi recadrer sa photo en zoomant et en la déplaçant. L'image est ensuite sauvegardée avec les coordonnées du recadrage et peut être affichée sur &lt;a href=&quot;http://www.les-experts.com&quot; hreflang=&quot;fr&quot;&gt;le site public&lt;/a&gt; en taille réduite ou en taille réelle.&lt;/p&gt;


&lt;p&gt;Mais le mieux est de regarder tout ça&amp;nbsp;:&lt;/p&gt;

&lt;iframe title=&quot;YouTube video player&quot; width=&quot;100%&quot; height=&quot;400&quot; src=&quot;http://www.youtube.com/embed/KqWAazZnFi8&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;



&lt;p&gt;Tout ça a été développé en javascript avec YUI3 sous formes de plusieurs modules chacun autonomes qui pourront être réutilisé ultérieurement dans le reste du projet. Ou d'autres projets… peut être un jour sur OverBlog &lt;img src=&quot;/themes/Alt-I-3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2011/02/19/Selecteur-de-media-et-crop-wikio-experts#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2011/02/19/Selecteur-de-media-et-crop-wikio-experts#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/808</wfw:commentRss>
      </item>
    
  <item>
    <title>Pwned chez Yahoo</title>
    <link>http://alt-i.fr/post/2011/01/31/Pwned-chez-Yahoo</link>
    <guid isPermaLink="false">urn:md5:9c50f501ddef5d5bcdd82433d443db2e</guid>
    <pubDate>Mon, 31 Jan 2011 16:33:00 +0100</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>IRC</category><category>Javascript</category><category>YUI</category>    
    <description>    &lt;p&gt;Me suis fait pwned par le yuibot :p&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;16:17:07 Hadrien (hadrien): so, i give Y.bind() in place of function as second param of Y.YSQL ?&lt;br /&gt;
16:17:34 brian_endpoint: sounds right&lt;br /&gt;
16:18:15 brian_endpoint: Y.bind wraps any function setting 'this' inside of that function, so anywhere that takes a function as an argument will take the return value of Y.bind (since it is a function)&lt;br /&gt;
16:18:44 Hadrien (hadrien): doesn't works &lt;img src=&quot;/themes/Alt-I-3/smilies/sad.png&quot; alt=&quot;:(&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;
16:18:45 yuibot: doesn't work: What do you mean it doesn't work?  What happens when you try to run it?  What's the output?  What's the error message?  Saying &quot;it doesn't work&quot; is pointless.&lt;br /&gt;
16:18:57 apipkin: lol!&lt;br /&gt;
16:19:45 brian_endpoint: you get'em yuibot&lt;br /&gt;
16:20:20 apipkin: i think that's the first time i've seen yuibot say that&lt;br /&gt;
16:20:32 apipkin: i mean i saw it in the source, but never in the channel&lt;br /&gt;
16:21:33 Tew (tew): it got recently triggered on &quot;doesn't w..k in YUI 3.2&quot; &lt;img src=&quot;/themes/Alt-I-3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;
16:21:53 apipkin: hahaha&lt;/p&gt;&lt;/blockquote&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2011/01/31/Pwned-chez-Yahoo#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2011/01/31/Pwned-chez-Yahoo#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/806</wfw:commentRss>
      </item>
    
  <item>
    <title>Une loupe en JS/CSS3</title>
    <link>http://alt-i.fr/post/2010/12/19/Une-loupe-en-JS-CSS3-YUI3</link>
    <guid isPermaLink="false">urn:md5:135b3eac1e9f09176ef96fe908e5e8c6</guid>
    <pubDate>Sun, 19 Dec 2010 17:04:00 +0100</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>CSS</category><category>css3</category><category>developpement</category><category>Javascript</category><category>js</category><category>Yahoo</category><category>YUI</category>    
    <description>    &lt;p&gt;Petit TP du week end&amp;nbsp;: un &lt;a href=&quot;http://works.hadrien.eu/magnifier/&quot; hreflang=&quot;fr&quot;&gt;effet de loupe&lt;/a&gt; en Javascript et CSS3 que vous pouvez &lt;a href=&quot;http://works.hadrien.eu/magnifier/&quot; hreflang=&quot;fr&quot;&gt;essayer ici&lt;/a&gt;. Vous pouvez changer le style de la loupe grâce au menu à gauche.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://alt-i.fr/images/Scrinchoutes/magnifier.jpg&quot; alt=&quot;magnifier.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;magnifier.jpg, déc. 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;J'ai codé ça à l'aide de YUI3. C'est l'occasion de découvrir ensemble les qualités de ce framework magique de Yahoo. Regardons ça d'un peu plus près.&lt;/p&gt;


&lt;h3&gt;Head&lt;/h3&gt;


&lt;p&gt;Dans le header de ma page html, je charge deux scripts&amp;nbsp;: &lt;ins&gt;http://yui.yahooapis.com/3.2.0/build/yui/yui-min.js&lt;/ins&gt; et &lt;ins&gt;js/magnifier.js&lt;/ins&gt;.&lt;br /&gt;
Le premier est la base de YUI. Cette classe s'occupera de charger toutes les dépendances des scripts utilisés dans la page.&lt;br /&gt;
Le second est mon script dans lequel est déclarée une classe qui hérite de &lt;em&gt;Y.Plugin.Base&lt;/em&gt;.&lt;/p&gt;


&lt;h3&gt;Body&lt;/h3&gt;


&lt;p&gt;Dans le body, le script suivant&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;javascript syntaxehl javascript&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt; charset&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;//&amp;lt;![CDATA[&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	YUI&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'magnifier'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;Y&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		Y.&lt;span style=&quot;color: #660066;&quot;&gt;all&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'img[longdesc]'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;each&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;img&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;				img.&lt;span style=&quot;color: #660066;&quot;&gt;plug&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;Magnifier&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;//]]&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;On récupère tous les éléments &amp;lt;img /&amp;gt; de la page qui possèdent un attribut longdesc, et pour chacun d'eux, on leur plugue la classe &lt;em&gt;Y.Magnifier&lt;/em&gt;, justement décrite dans le fichier js/magnifier.js. Observons la magie de YUI3.&lt;br /&gt;
Dans ce bout de script, &lt;em&gt;img&lt;/em&gt; n'est pas qu'un simple element. C'est un objet de classe &lt;em&gt;Y.Node&lt;/em&gt; construit autour de l'élément &lt;em&gt;&amp;lt;img /&amp;gt;&lt;/em&gt;. C'est ainsi qu'on peut lui faire exécuter des méthodes, telles que &lt;em&gt;img.one('.selecteur .css p')&lt;/em&gt; qui récupère un élément enfant en suivant un sélecteur CSS par exemple, ou lui attacher des plugins, qui sont des classes héritant de &lt;em&gt;Y.Plugin.Base&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;C'est donc ce que fait ma classe &lt;em&gt;Y.Magnifier&lt;/em&gt;. C'est un plugin qui va rajouter des fonctionnalités à cette pauvre image sans défense. Regardons de quoi elle est faite.&lt;/p&gt;

&lt;pre class=&quot;javascript syntaxehl javascript&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;YUI&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'magnifier'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;Y&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #3366CC;&quot;&gt;'1.0'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;    requires&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'plugin'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #3366CC;&quot;&gt;'node'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #3366CC;&quot;&gt;'overlay'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Tout va se passer dans la méthode &lt;em&gt;add()&lt;/em&gt; de l'objet global &lt;em&gt;YUI()&lt;/em&gt;. Le premier paramètre est le nom du module que nous ajoutons à YUI (différent du nom de la classe). Le second paramètre est la code qui sera éxécuté quand ce module sera chargé. Le troisième indique le numéro de version et ne sert pas à grand chose. Le quatrième est nettement plus intéressant car il permet de spécifier les dépendances. Ma classe aura besoin des modules de YUI&amp;nbsp;: plugin, node et overlay et seront chargés automatiquement sans avoir à les inclure dans mon head&amp;nbsp;: la magie du YUI3 Loader.&lt;/p&gt;


&lt;p&gt;Regardons maintenant le code éxécuté par notre module magnifier&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;javascript syntaxehl javascript&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;Magnifier&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;config&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	Y.&lt;span style=&quot;color: #660066;&quot;&gt;Magnifier&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;superclass&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;constructor&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; arguments&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;Magnifier&lt;/span&gt;.&lt;span style=&quot;color: #000066;&quot;&gt;NAME&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #3366CC;&quot;&gt;'Magnifier'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;Magnifier&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;NS&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #3366CC;&quot;&gt;'magnifier'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;Magnifier&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;ATTRS&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 * Original picture's url&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	original&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		valueFn&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 * Container where is displayed the magnifier&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	container&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		valueFn&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;extend&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;Magnifier&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; Y.&lt;span style=&quot;color: #660066;&quot;&gt;Plugin&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;Base&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;La première fonction permet de déclarer le nom de ma classe et de lui faire adopter le même comportement que l'ensemble des classes de YUI&amp;nbsp;: un unique argument sous forme d'objet de paramètres nommés, qui servira pour la gestion des attributs. Je l'ai appellée &lt;em&gt;Y.Magnifier&lt;/em&gt;, mais j'aurais aussi pu l'appeler &lt;em&gt;Y.eu.hadrien.Magnifier&lt;/em&gt; ou encore &lt;em&gt;Loupe&lt;/em&gt;. Cette variable ne sera de toute façon présente que dans la sandbox qui aura demandé à faire usage de ce module (&lt;em&gt;YUI().use('magnifier', function(Y) {})&lt;/em&gt;).&lt;/p&gt;


&lt;p&gt;Les attributs &lt;em&gt;NAME&lt;/em&gt; et &lt;em&gt;NS&lt;/em&gt; permettent de nommer notre classe de façon générique. Le plus important pour un plugin est &lt;em&gt;NS&lt;/em&gt; car c'est par ce nom que la factory deviendra accessible depuis l'objet hote. Ainsi, dans notre exemple, je pourrais accéder à l'objet &lt;em&gt;Magnifier&lt;/em&gt; depuis &lt;em&gt;img.magnifier&lt;/em&gt;.&lt;br /&gt;
&lt;em&gt;ATTRS&lt;/em&gt; est une fonctionnalité particulièrement pratique de YUI. Dans cet objet, nous allons déclarer tous les paramètres que notre classe peut avoir. Nous pouvons pour chacun d'eux spécifier une valeur par défaut, une valeur par défaut calculée par une fonction (c'est le cas ici grâce à valueFn), des méthode de getter, de setter, ou de controle de typage. Tout ces attributs feront partie des arguments que l'ont pourra passer lors de l'instanciation de la classe. Petit exemple&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;javascript syntaxehl javascript&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;MaClasse.&lt;span style=&quot;color: #660066;&quot;&gt;ATTRS&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	truc&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		value&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		setter&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; v &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: #CC0000;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	machin&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		valueFn&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'truc'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	bidule&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		value&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		getter&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'truc'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #CC0000;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;				&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	unEntier&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		value&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		setter&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;!&lt;/span&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;Lang&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;isNumber&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;				&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;throw&lt;/span&gt; &lt;span style=&quot;color: #3366CC;&quot;&gt;'unEntier must be a Number'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;			&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; v&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; monObj1 &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; MaClasse&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// monObj1.get('truc') === 1;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// monObj1.get('machin') === 2;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// monObj1.get('bidule') === false;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;monObj1.&lt;span style=&quot;color: #660066;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'truc'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #CC0000;&quot;&gt;20&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// monObj1.get('truc') === 200;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; monObj2 &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; MaClasse&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	truc&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #CC0000;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	machin&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #CC0000;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	graaaa&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #3366CC;&quot;&gt;'test'&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// monObj2.get('truc') === 20&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// monObj2.get('machin') === 10&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// monObj2.get('bidule') === true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// monObj2.get('graaaa') === undefined&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// monObj2.set('unEntier', 'yo') =&amp;gt; Exception&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Cette façon de déclarer les propriétés d'une classe est particulièrement puissant et permet de ranger plus clairement son code en séparant les méthodes de formatage des variables du code propre à la classe elle même.&lt;/p&gt;


&lt;p&gt;La dernière partie concerne la définitions des méthodes de la classe. Cela se passe à travers la méthode &lt;em&gt;Y.extend&lt;/em&gt; qui va se charger de faire hériter notre classe d'une précédente, et d'y ajouter ses propres méthodes. Le premier argument est notre classe. Le second est la classe dont elle hérite. Le troisième est le prototype de notre classe&amp;nbsp;: un objet contenant ses méthodes.&lt;br /&gt;
Des méthodes spéciales sont proposées&amp;nbsp;: initializer et destructor. initializer est le constructeur et sera appelée automatiquement lors de l'instanciation de la classe. desctructor sera appelé lors la destruction de l'objet grâce à la méthode destroy() dont notre classe a hérité de &lt;em&gt;Y.Base&lt;/em&gt; (dont hérite &lt;em&gt;Y.Plugin.Base&lt;/em&gt;).&lt;/p&gt;


&lt;p&gt;Il ne nous reste plus qu'à coder les méthodes de notre classe, en sachant que nous accédons toujours aux attributs renseignés dans &lt;em&gt;ATTRS&lt;/em&gt; grâce à la méthode &lt;em&gt;get()&lt;/em&gt; (&lt;em&gt;monObj.get('maPropery')&lt;/em&gt;, que nous les modifions grâce à &lt;em&gt;set()&lt;/em&gt; (&lt;em&gt;monObj.set('maProperty', 'maValue')&lt;/em&gt;). Et spécifiquement aux classes qui héritent de plugin, l'objet auquel nous avons pluggé notre classe est implicitement mis dans la propriété &lt;em&gt;host&lt;/em&gt;. Nous accédons dans notre classe &lt;em&gt;Magnifier&lt;/em&gt; à notre &lt;em&gt;Node&lt;/em&gt; &amp;lt;img /&amp;gt; grâce à &lt;em&gt;this.get('host')&lt;/em&gt; à l'intérieur de la classe, ou &lt;em&gt;maLoupe.get('host')&lt;/em&gt; depuis l'instance.&lt;/p&gt;

&lt;pre class=&quot;javascript syntaxehl javascript&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;extend&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;Magnifier&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; Y.&lt;span style=&quot;color: #660066;&quot;&gt;Plugin&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;Base&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	initializer&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 * destruct&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	destructor&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 * Show and positionate glasse and its background image&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	move&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; y&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 * hide glasses&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;	 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	hide&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; y&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;		…&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Concernant la css et la loupe ronde, il s'agit d'une bidouille à l'aide de &lt;em&gt;border-radius&lt;/em&gt; qui consiste à spécifier un radius de la même taille que les dimensions du container&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;css syntaxehl css&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.magnifier&lt;/span&gt; &lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;width&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;200px&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;height&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;200px&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	-moz-border-radius&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;200px&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* FF1+ */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	-webkit-border-radius&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;200px&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* Saf3+, Chrome */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	-khtml-border-radius&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;200px&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* Konqueror */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	border-radius&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #933;&quot;&gt;200px&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* Standard. IE9 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Évidemment, ça marche pas sous IE &amp;lt; 9, mais osef :D&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/12/19/Une-loupe-en-JS-CSS3-YUI3#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/12/19/Une-loupe-en-JS-CSS3-YUI3#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/804</wfw:commentRss>
      </item>
    
  <item>
    <title>Spotilike</title>
    <link>http://alt-i.fr/post/2010/12/18/Spotilike</link>
    <guid isPermaLink="false">urn:md5:00496c0b922e901c8faec3961b72172c</guid>
    <pubDate>Sat, 18 Dec 2010 12:19:00 +0100</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>communautaire</category><category>developpement</category><category>Last.FM</category><category>musique</category><category>Spotify</category><category>webapp</category>    
    <description>    &lt;p&gt;Ça fait maintenant longtemps que j'utilise Spotify pour écouter de la musique. Couplé avec LastFM, Spotify me permet de découvrir plein de nouveaux artistes. En effet, Spotify &lt;a href=&quot;http://en.wiktionary.org/wiki/scrobble&quot; hreflang=&quot;en&quot;&gt;scrobble&lt;/a&gt; la musique que j'écoute et mets ainsi à jour mon profil LastFM qui est toujours capable de me recommander des titres par rapport à mes goûts.&lt;/p&gt;


&lt;p&gt;J'utilise l'excellent site &lt;a href=&quot;http://spotibot.com/&quot; hreflang=&quot;en&quot;&gt;Spotibot&lt;/a&gt; pour me concocter des playlists automatiquement générées grâce aux recommandations de LastFM. Quand un titre me plait, je l'ajoute à mes favoris en le &quot;starrant&quot; dans Spotify. Mais LastFm n'est pas informé de ce &quot;like&quot; et ne peux pas affiner ses recommandation… quel dommage&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Ben du coup, j'ai codé un outil pour faire ça rapidement. Je vous présente &lt;a href=&quot;http://spotilike.hadrien.eu&quot; hreflang=&quot;fr&quot;&gt;Spotilike&lt;/a&gt;&amp;nbsp;! Ce site web qui reprends rapidement l'interface de Spotify attends que vous lui glissiez une sélection de morceaux et celui-ci se chargera de les liker pour vous sur votre profil LastFM. Ça marche aussi en copiant collant pour ceux qui n'aiment pas le drag'n'drop, mais c'est moins fun.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://alt-i.fr/images/Scrinchoutes/spotilike/spotilike1.jpg&quot; alt=&quot;spotilike1.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;spotilike1.jpg, déc. 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://alt-i.fr/images/Scrinchoutes/spotilike/spotilike2.jpg&quot; alt=&quot;spotilike2.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;spotilike2.jpg, déc. 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Si vous êtes utilisateur de Spotify et LastFM, je vous invite à l'essayer&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/12/18/Spotilike#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/12/18/Spotilike#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/803</wfw:commentRss>
      </item>
    
  <item>
    <title>Un bug fourbe bis</title>
    <link>http://alt-i.fr/post/2010/11/16/Un-bug-fourbe-bis-chrome-select-css-font-family</link>
    <guid isPermaLink="false">urn:md5:e383e909bd223e2fccc1f1e91c89529c</guid>
    <pubDate>Tue, 16 Nov 2010 12:05:00 +0100</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>bug</category><category>Chrome</category><category>css</category><category>html</category><category>web</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/8336297@N02/3904508377&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2532/3904508377_fb922111f6_m.jpg&quot; alt=&quot;(Chrome) Sandtrooper&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; /&gt;&lt;/a&gt;Cette fois, c'est Chrome qui m'a embeté. Un bug assez étrange que je n'arrivais pas à reproduire malgré l'insistance de mes collègues. En effet, j'utilisais la version de dev (v9) alors qu'ils utilisaient la version stable (v7). Une fois ce détail pris en compte, j'ai pu reproduire le bug, mais impossible de comprendre dans quelles circonstance il se produisait. Dans ma page web, un formulaire, des &amp;lt;select /&amp;gt; (menus). Quand on choisit un item d'un des menu, c'est l'item suivant qui se sélectionne comme on peut le voir sur ce screencast&amp;nbsp;:&lt;/p&gt;

&lt;iframe title=&quot;YouTube video player&quot; class=&quot;youtube-player&quot; type=&quot;text/html&quot; width=&quot;100%&quot; height=&quot;390&quot; src=&quot;http://www.youtube.com/embed/dBMQwmAgaKw&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;



&lt;p&gt;Le plus étrange, c'est que ça ne se produit que dans cette page et même en ayant désactivé javascript. Et si je copie le code source dans un fichier en local que je charge dans Chrome, plus de problème. Au bord du désespoir, je vais tenter un truc con… virer les CSS de cette page qui buggue. N'importe quoi…&lt;/p&gt;


&lt;p&gt;Et bien, si. Ça a corrigé le bug. En ciblant, j'ai fini par trouver la ligne coupable&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;css syntaxehl css&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.adminform&lt;/span&gt; select &lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;font-family&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'helvetica neue'&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; helvetica&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; arial&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Si j'enlève cette ligne, plus de problème. C'est la fonte Helvetica Neue qui fait merder le select sous Chrome 7&amp;nbsp;! Incroyable&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;J'ai donc corrigé ce bug avec une pustule&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;CSS&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;css syntaxehl css&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.adminform&lt;/span&gt; select&lt;span style=&quot;color: #6666ff;&quot;&gt;.chromefix&lt;/span&gt; &lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;font-family&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;:&lt;/span&gt; helvetica&lt;span style=&quot;color: #00AA00;&quot;&gt;,&lt;/span&gt; arial&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;JS&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;javascript syntaxehl javascript&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;parseInt&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;Y.&lt;span style=&quot;color: #660066;&quot;&gt;UA&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;chrome&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;===&lt;/span&gt; &lt;span style=&quot;color: #CC0000;&quot;&gt;7&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;	Y.&lt;span style=&quot;color: #660066;&quot;&gt;all&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'.adminform select'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #660066;&quot;&gt;addClass&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'chromefix'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;On se rassurera tout de même en constatant que le bug a été corrigé par Google puisqu'il n'était pas présent sur la version 9. Par contre, j'aurais aimé trouvé un ticket correspondant dans le bug tracker, mais je n'ai rien trouvé &lt;img src=&quot;/themes/Alt-I-3/smilies/sad.png&quot; alt=&quot;:(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/11/16/Un-bug-fourbe-bis-chrome-select-css-font-family#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/11/16/Un-bug-fourbe-bis-chrome-select-css-font-family#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/802</wfw:commentRss>
      </item>
    
  <item>
    <title>Un bug fourbe</title>
    <link>http://alt-i.fr/post/2010/10/28/Un-bug-fourbe-php-wikio-experts-favicon-chrome</link>
    <guid isPermaLink="false">urn:md5:28a30d23490e4bdd17f3e62b687d5f26</guid>
    <pubDate>Thu, 28 Oct 2010 12:21:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>bug</category><category>debug</category><category>htaccess</category><category>PHP</category><category>rewrite</category><category>Wikio</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/76103695@N00/1703252007&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2039/1703252007_24ce860838_m.jpg&quot; alt=&quot;code bug&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; /&gt;&lt;/a&gt;Je suis tombé avant-hier sur un bug d'une fourberie incroyable qui m'aura couté une demi journée de fouille et de confusion totale. J'ai fini par y venir à bout, mais quand vous appendrez par quelle façon, vous tomberez des nues autant que moi. Ou alors, c'est que vous n'êtes pas développeurs et vous êtes alors dispensé de la lecture de cet article &lt;img src=&quot;/themes/Alt-I-3/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;h3&gt;Contexte&lt;/h3&gt;


&lt;p&gt;&lt;a href=&quot;http://www.wikio-experts.com&quot; hreflang=&quot;fr&quot;&gt;Wikio-experts&lt;/a&gt;, nouveau site de Wikio Group, dont je développe la partie front-end. &lt;a href=&quot;http://www.wikio-experts.com/signup&quot; hreflang=&quot;fr&quot;&gt;Le formulaire d'inscription&lt;/a&gt; fonctionne évidemment très bien… mais pas sur Chrome. Et uniquement Chrome. Après avoir rempli et validé le formulaire, on revient sur le formulaire, désespérément vierge.&lt;/p&gt;


&lt;h3&gt;Fouille&lt;/h3&gt;


&lt;p&gt;Wikio-experts, comme &lt;a href=&quot;http://www.over-blog.com&quot; hreflang=&quot;fr&quot;&gt;OverBlog&lt;/a&gt;, utilise &lt;a href=&quot;http://jelix.org&quot; hreflang=&quot;fr&quot;&gt;l'excellent framework Jelix&lt;/a&gt; qui propose, entre autre chose, une façon sécurisée de traiter les formulaires&amp;nbsp;: jForms. Sans entrer dans les détails, le formulaire et toute ses données&amp;nbsp;: champs, vérification des champs, gestion des erreurs, etc, sont stockés dans un objet PHP en session afin de faciliter les multiples aller retours entre clients et serveurs jusqu'à sa validation finale.&lt;/p&gt;


&lt;p&gt;J'ai donc loggué le contenu de ma session juste avant d'envoyer le formulaire au client, et juste avant de traiter sa soumission. Résultat&amp;nbsp;: avant, la session contient bien le jForm &quot;signup&quot;, après, le jForm &quot;signup&quot; a disparu mais un jForm &quot;login&quot; est apparu.&lt;/p&gt;


&lt;p&gt;Je fais alors le lien avec jAuth, le plugin d'authentification de Jelix sans pour autant comprendre par quel mystère on aurait pu appeler du code lié à jAuth dans ces circonstances. Je commente des parties de code, je désactive des trucs, je log ce qu'il se passe en tout début de script, debug classique quoi…&lt;/p&gt;


&lt;p&gt;Et j'en arrive à la conclusion suivante&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/20213211@N00/26850266&quot;&gt;&lt;img src=&quot;http://farm1.static.flickr.com/22/26850266_9d913d21be_m.jpg&quot; alt=&quot;Blown Bulb&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;Révélations&amp;nbsp;!&lt;/h3&gt;


&lt;p&gt;&lt;strong&gt;Le formulaire ne fonctionne pas car le fichier &lt;ins&gt;/favicon.ico&lt;/ins&gt; n'existe pas.&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Ça vous la coupe hein&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Mais comment qu'c'est possible ???&lt;/p&gt;


&lt;p&gt;Chrome a pour habitude, comme nombre de navigateur, de vérifier si un fichier &lt;ins&gt;/favicon.ico&lt;/ins&gt; existe, même si ce n'est pas spécifié dans la page web, au cas où. Sur le serveur, un classique .htaccess pour gérer les réécritures d'url qui, si l'url demandée n'existe pas, renvoit sur index.php?$1. Pour les non dev qui auraient survécu jusqu'ici, si un navigateur demande &lt;ins&gt;/favicon.ico&lt;/ins&gt; et que ce fichier n'existe pas sur le serveur, le serveur renverra la même chose que si le navigateur avait demandé à accéder à &lt;ins&gt;/index.php?/favicon.ico&lt;/ins&gt;.&lt;/p&gt;


&lt;p&gt;Or, ce contrôleur n'existe évidemment pas dans mon application qui redirige automatiquement vers un contrôleur affichant une erreur 404. Et c'est là que se situait l'erreur. Mon application n'étant constitué à 99% que de pages nécessitant une authentification, je n'avais jamais remarqué que j'avais oublié de spécifier que ce contrôleur ne nécessitait pas d'auth, qui alors, redirigeait vers le formulaire de login, lequel effectuait évidemment un clean de session et donc la perte de mon jForm d'inscription.&lt;/p&gt;


&lt;p&gt;J'ai donc ajouté un joli favicon.ico et les utilisateurs Chrome ont pu enfin s'inscrire -_-&quot;&lt;/p&gt;


&lt;p&gt;La question qui reste encore en suspend est&amp;nbsp;: &quot;pourquoi seul Chrome a-t-il été impacté par ce bug ?&quot;&lt;br /&gt;
Je suppose que les autres browsers, qui ne s'embêtent pas à tenter eux aussi de chopper le favicon.ico, s'arrêtent immédiatement si la première réponse du serveur n'est pas un 200… Si quelqu'un peut apporter une réponse&amp;nbsp;?&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/10/28/Un-bug-fourbe-php-wikio-experts-favicon-chrome#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/10/28/Un-bug-fourbe-php-wikio-experts-favicon-chrome#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/801</wfw:commentRss>
      </item>
    
  <item>
    <title>Cherokee 1 - Apache 0</title>
    <link>http://alt-i.fr/post/2010/09/10/Cherokee-1-Apache-0</link>
    <guid isPermaLink="false">urn:md5:e930c319b7eb947da885c971dbed1473</guid>
    <pubDate>Fri, 10 Sep 2010 13:40:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>administration</category><category>adminsys</category><category>Apache</category><category>Cherokee</category><category>serveur</category><category>web</category>    
    <description>    &lt;p&gt;Comme vous le savez, j'aime bien essayer des trucs nouveaux et un peu différents. Quand j'ai appris qu'un nouveau serveur web aussi complet que Apache était disponible, ça a commencé à me titiller. Quand on m'a dit qu'il était plus rapide et puissant que Apache, j'ai décidé de l'essayer. Et quand j'ai vu la simplicité avec laquelle on l'administre, je l'ai adopté&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.cherokee-project.com/&quot; hreflang=&quot;en&quot;&gt;Cherokee&lt;/a&gt; sera donc celui qui, dorénavant, vous servira les pages de ce blog et de tous mes autres sites. Il fera ça aussi rapidement et avec autant de plaisir, si ce n'est plus, que le précédent serveur à l'unique plume, licencié comme un malpropre à quelques années de la retraite, bien fait pour lui.&lt;br /&gt;
Ce que ça change pour vous, visiteurs, rien&amp;nbsp;! Sauf si vous aimez surfer en ayant toujours un œil sur les headers&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://alt-i.fr/images/Scrinchoutes/cherokee/headers_alt-i_cherokee.png&quot; alt=&quot;Headers Alt-I Cherokee&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Headers Alt-I Cherokee, sept. 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Si j'avais eu dix fois plus de traffic, vous auriez surement ressenti une accélération du transfert des pages. Par contre, de mon coté, ça change tout. Je passe de ceci&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://alt-i.fr/images/Scrinchoutes/cherokee/apache_config.jpg&quot; title=&quot;Configuration Apache vi&quot;&gt;&lt;img src=&quot;http://alt-i.fr/images/Scrinchoutes/cherokee/.apache_config_m.jpg&quot; alt=&quot;Configuration Apache vi&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Configuration Apache vi, sept. 2010&quot; /&gt;&lt;/a&gt;
sudo vi /etc/apache2/sites-available/default&lt;/p&gt;


&lt;p&gt;à ça&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://alt-i.fr/images/Scrinchoutes/cherokee/admin_web_cherokee.png&quot; title=&quot;Administration web Cherokee&quot;&gt;&lt;img src=&quot;http://alt-i.fr/images/Scrinchoutes/cherokee/.admin_web_cherokee_m.jpg&quot; alt=&quot;Administration web Cherokee&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Administration web Cherokee, sept. 2010&quot; /&gt;&lt;/a&gt;
http://localhost:9090&lt;/p&gt;


&lt;p&gt;Une interface web sécurisée qui permet de configurer les moindres parties de votre serveur web en clickodrome. Ça change des multiples fichiers de configuration textes à éditer en lignes de commande et ça permet d'avoir une liste de VHost beaucoup plus claire.&lt;/p&gt;


&lt;p&gt;La migration de mes vhost apache a été très facile grâce aux assistants inclus dans cette interface d'admin. Quand on ajoute un nouveau VHost, on peut choisir un modèle parmi une liste déjà bien remplie pour définir un nombre de règles necessaire pour faire fonctionner l'application servie par ce VHost. Par exemple, on pourra choisir un Wordpress qui créera un VHost avec la configuration de PHP en fastCGI et les règles de réécritures necessaires&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://alt-i.fr/images/Scrinchoutes/cherokee/admin_web_cherokee_wizard.png&quot; title=&quot;Wizard administration web Cherokee&quot;&gt;&lt;img src=&quot;http://alt-i.fr/images/Scrinchoutes/cherokee/.admin_web_cherokee_wizard_m.jpg&quot; alt=&quot;Wizard administration web Cherokee&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Wizard administration web Cherokee, sept. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Par contre, nul wizard pour un Dotclear. Il a fallu donc que je mette un peu les mains dans le cambouis et que je comprenne le système de behaviors qui remplace les règles de configuration dans Apache. Après quelques tatonnage, j'ai fini par réussir à configurer les règles de réécriture et les redirections que j'avais définies dans le .htaccess de Alt-I.&lt;/p&gt;


&lt;p&gt;Et voilà donc une dizaine de sites web migrés en une petite soirée sans aucun accroc. Cherokee, essayez le&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/09/10/Cherokee-1-Apache-0#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/09/10/Cherokee-1-Apache-0#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/793</wfw:commentRss>
      </item>
    
  <item>
    <title>Levenshtein</title>
    <link>http://alt-i.fr/post/2010/08/16/Levenshtein</link>
    <guid isPermaLink="false">urn:md5:43aebc595ae5913066dda9560bdef04d</guid>
    <pubDate>Mon, 16 Aug 2010 10:28:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>developpement</category><category>Javascript</category><category>PHP</category>    
    <description>    &lt;p&gt;Je cherchais un algo en javascript pour connaitre le pourcentage de différence entre deux chaines de caractères afin d'alerter l'utilisateur s'il modifie trop un texte de départ. Je ne savais pas trop comment m'y prendre jusqu'à ce que mon &lt;a href=&quot;http://torgan.net&quot; hreflang=&quot;fr&quot;&gt;Maitre PHP&lt;/a&gt; me parle de &lt;a href=&quot;http://php.net/manual/fr/function.levenshtein.php&quot; hreflang=&quot;fr&quot;&gt;la fonction php levenshtein&lt;/a&gt; dont le but est de &quot;calculer la distance Levenshtein entre deux chaînes&quot;. La distance Levenshtein ?…&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;La distance de Levenshtein mesure la similarité entre deux chaînes de caractères. Elle est égale au nombre minimal de caractères qu'il faut supprimer, insérer ou remplacer pour passer d’une chaîne à l’autre.&lt;br /&gt;
Son nom provient de Vladimir Levenshtein qui l'a définie en 1965. Elle est aussi connue sous le nom de «&amp;nbsp;distance d'édition&amp;nbsp;» ou encore de «&amp;nbsp;déformation dynamique temporelle », notamment en reconnaissance vocale.&lt;br /&gt;
Cette distance est d'autant plus grande que le nombre de différences entre les deux chaînes est grand. La distance de Levenshtein peut être considérée comme une généralisation de la distance de Hamming. On peut montrer en particulier que la distance de Hamming est un majorant de la distance de Levenshtein.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;http://fr.wikipedia.org/wiki/Distance_de_Levenshtein&quot; hreflang=&quot;fr&quot;&gt;Wikipédia&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Ah ah&amp;nbsp;! C'est exactement ce dont j'avais besoin&amp;nbsp;! Et hop, en voici &lt;a href=&quot;http://phpjs.org/functions/levenshtein:463&quot; hreflang=&quot;en&quot;&gt;une version javascript&lt;/a&gt;&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/08/16/Levenshtein#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/08/16/Levenshtein#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/786</wfw:commentRss>
      </item>
    
  <item>
    <title>Technique anti spam</title>
    <link>http://alt-i.fr/post/2010/07/16/Technique-anti-spam-rigolote-seo</link>
    <guid isPermaLink="false">urn:md5:827ad7bd71e722b6de59bc6209c769ca</guid>
    <pubDate>Fri, 16 Jul 2010 08:51:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>blog</category><category>extension</category><category>plugin</category><category>SEO</category><category>spam</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/51066877@N00/44557067&quot;&gt;&lt;img src=&quot;http://farm1.static.flickr.com/29/44557067_449c519f6a_m.jpg&quot; alt=&quot;Google Wallpaper&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;&lt;/a&gt;Je viens de mettre en place une nouvelle procédure anti spam que je trouve assez rigolote. De plus en plus de &lt;a href=&quot;http://fr.wikipedia.org/wiki/Spamdexing&quot; hreflang=&quot;fr&quot;&gt;blackhat SEO&lt;/a&gt; spamment les commentaires des blogs afin de placer les liens de leurs clients et augmenter leur référencement. La solution de facilité est de simplement rajouter l'attribut &quot;nofollow&quot; sur les liens des commentaires. Cet attribut permet de demander à Google de ne pas suivre et indexer le lien correspondant. Le problème, c'est que j'ai aussi des commentaires pertinents qui méritent d'avoir un lien en récompense de leur contribution. Alors que faire&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Dotclear dispose d'un moteur anti spam particulièrement bon qui sait détecter quasiment tous les commentaires inutiles. Ils sont en général mis de coté en attente de validation manuelle de ma part. La plupart du temps, je les supprime simplement. Puis m'est venu une idée sadique. Dorénavant, je publie le commentaire de spam, mais après avoir modifié le lien par une de mes urls. &lt;a href=&quot;http://alt-i.fr/post/2010/07/12/Flattez-moi#c3037&quot; hreflang=&quot;fr&quot;&gt;Exemple par ici&lt;/a&gt;. Ainsi, je fais travailler les spammeurs pour moi. Pratique non&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Je vais réfléchir à un moyen d'automatiser le processus à travers une &lt;a href=&quot;http://alt-i.fr/pages/pixearch&quot; hreflang=&quot;fr&quot;&gt;extension Dotclear&lt;/a&gt;. Si l'idée vous plait, n'hésitez pas à mettre votre site en lien de votre commentaire &lt;img src=&quot;/themes/Alt-I-3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/07/16/Technique-anti-spam-rigolote-seo#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/07/16/Technique-anti-spam-rigolote-seo#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/784</wfw:commentRss>
      </item>
    
  <item>
    <title>Mise à jour TwitterPost 1.5</title>
    <link>http://alt-i.fr/post/2010/07/09/Mise-a-jour-TwitterPost-1.5</link>
    <guid isPermaLink="false">urn:md5:9b5bd330e974f6164582193814c6df27</guid>
    <pubDate>Fri, 09 Jul 2010 20:42:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>Dotclear</category><category>extension</category><category>plugin</category><category>Twitter</category>    
    <description>    &lt;p&gt;Chose promie, chose due. Voici la &lt;a href=&quot;http://alt-i.fr/pages/TwitterPost&quot; hreflang=&quot;fr&quot;&gt;mise à jour de TwitterPost&lt;/a&gt; qui permet de choisir sa propre API pour raccourcir ses urls. Alti.pro est toujours l'API par défaut, mais vous pouvez très bien choisir n'importe quelle autre, celle de is.gd par exemple&amp;nbsp;: &lt;em&gt;http://is.gd/api.php?longurl=http://www.example.com&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Ça se télécharge &lt;a href=&quot;http://alt-i.fr/pages/TwitterPost&quot; hreflang=&quot;fr&quot;&gt;ici&lt;/a&gt; ou &lt;a href=&quot;http://plugins.dotaddict.org/dc2/details/twitterPost&quot; hreflang=&quot;fr&quot;&gt;là&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/07/09/Mise-a-jour-TwitterPost-1.5#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/07/09/Mise-a-jour-TwitterPost-1.5#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/782</wfw:commentRss>
      </item>
    
  <item>
    <title>Mise à jour de plugins</title>
    <link>http://alt-i.fr/post/2010/07/05/Mise-a-jour-de-plugins-dotclear-2.2</link>
    <guid isPermaLink="false">urn:md5:8ef04fd6567769be1b93469c1f7416ed</guid>
    <pubDate>Mon, 05 Jul 2010 13:58:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>Dotclear</category><category>extension</category><category>plugin</category><category>Twitter</category>    
    <description>    &lt;p&gt;Les extensions pour Dotclear &lt;a href=&quot;http://alt-i.fr/pages/pixearch&quot; hreflang=&quot;fr&quot;&gt;Pixearch&lt;/a&gt;, &lt;a href=&quot;http://alt-i.fr/pages/TwitterPost&quot; hreflang=&quot;fr&quot;&gt;TwitterPost&lt;/a&gt; et &lt;a href=&quot;http://alt-i.fr/pages/TwitterTrackback-extension-pour-trackbacker-les-tweets-retrolien-plugin-dotclear&quot; hreflang=&quot;fr&quot;&gt;TwitterTrackback&lt;/a&gt; ont (enfin) été mises à jour pour être compatibles avec Dotclear 2.2. Elles n'apportent aucune nouvelle fonctionnalité mais sont nécessaire si vous mettez à jour votre blog en 2.2.&lt;/p&gt;


&lt;p&gt;TwitterPost apporte un léger changement temporaire&amp;nbsp;: en mettant à jour l'extension, je me suis rendu compte que tr.im avait fermé son service. J'ai donc du le remplacer. Dans l'urgence, j'ai configuré mon raccourcisseur alti.pro en attendant que vous puissiez configurer votre propre raccourcisseur. Je proposerais de configurer uniquement un service basé sur &lt;a href=&quot;http://www.tux-planet.fr/bilbolink-un-reducteur-urls-open-source/&quot; hreflang=&quot;fr&quot;&gt;bilbolink&lt;/a&gt; avec un service simple par défaut du genre de is.gd.&lt;/p&gt;


&lt;p&gt;Et si ça vous va pas, vous pouvez toujours modifier TwitterPost.class.php vous même &lt;img src=&quot;/themes/Alt-I-3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/07/05/Mise-a-jour-de-plugins-dotclear-2.2#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/07/05/Mise-a-jour-de-plugins-dotclear-2.2#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/780</wfw:commentRss>
      </item>
    
  <item>
    <title>Quote sur #yui</title>
    <link>http://alt-i.fr/post/2010/07/01/Quote-sur-yui-troll-jquery</link>
    <guid isPermaLink="false">urn:md5:ba3177b3ae80ff799615f3baa1086403</guid>
    <pubDate>Thu, 01 Jul 2010 15:44:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>IRC</category><category>Javascript</category><category>quote</category><category>troll</category><category>YUI</category>    
    <description>    &lt;p&gt;Une petite citation que je viens d'intercepter sur le channel IRC #yui où l'on cause de Yahoo User Interface. Ça parlera pas à grand monde, mais moi ça m'a bien fait marrer &lt;img src=&quot;/themes/Alt-I-3/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;JohnnyL &lt;a href=&quot;http://alt-i.fr/post/2010/07/01/~excellent@xxx&quot; title=&quot;~excellent@xxx&quot;&gt;~excellent@xxx&lt;/a&gt; a rejoint le salon #yui. (15:34:44)&lt;br /&gt;
JohnnyL (johnnyl): what does YUI have that jQuery doesn't?&lt;br /&gt;
shabbs: balls&lt;br /&gt;
hadrien: \o/&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;YUI&amp;nbsp;: 1 - Troll&amp;nbsp;: 0&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/07/01/Quote-sur-yui-troll-jquery#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/07/01/Quote-sur-yui-troll-jquery#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/778</wfw:commentRss>
      </item>
    
  <item>
    <title>Evénements cross sand box avec YUI3</title>
    <link>http://alt-i.fr/post/2010/06/29/Evenements-cross-sand-box-avec-YUI3-javascript</link>
    <guid isPermaLink="false">urn:md5:ff0386893c49942cb156fd18249c908c</guid>
    <pubDate>Tue, 29 Jun 2010 12:35:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>developpement</category><category>Javascript</category><category>YUI</category>    
    <description>    &lt;p&gt;Petite astuce pour YUI3 que je viens de trouver après maintes recherches et tentatives. Le gros problème des &lt;a href=&quot;http://alt-i.fr/post/2010/05/18/YUI3-nouvelle-approche-Javascript-library&quot; hreflang=&quot;fr&quot;&gt;sandbox&lt;/a&gt;, c'est qu'il est difficile de communiquer de l'une à l'autre. J'ai été confronté au problème suivant&amp;nbsp;: dans une partie de mon code, je crée un nouvel objet à partir d'une de mes classe. Puis, ailleurs, je désires utiliser cet objet. Mais je suis, forcément, dans une nouvelle sandbox. Comment accéder à cet objet&amp;nbsp;?&lt;/p&gt;


&lt;h3&gt;Présentation de la situation&lt;/h3&gt;

&lt;pre class=&quot;javascript&quot;&gt;YUI&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'maClasse'&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Y&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; objet = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; MaClasse&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;label: &lt;span style=&quot;color: #3366CC;&quot;&gt;'truc'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;//[…]&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;objet.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'label'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;


&lt;p&gt;Résultat, l'alerte affiche &quot;undefined&quot; car &lt;strong&gt;objet&lt;/strong&gt; n'existe pas dans cette sandbox.&lt;/p&gt;


&lt;h3&gt;Première tentative, la variable globale&lt;/h3&gt;


&lt;p&gt;J'ai d'abord naïvement pensé qu'en mettant mon objet en tant que variable globale, je pourrais y accéder dans ma seconde sandbox&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;javascript&quot;&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; objet = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;null&lt;/span&gt;;
YUI&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'maClasse'&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Y&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
	objet = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; MaClasse&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;label: &lt;span style=&quot;color: #3366CC;&quot;&gt;'truc'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;//[…]&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;objet.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'label'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;


&lt;p&gt;Erreur, car objet est bien renseigné dans le scope global, mais le code passé à YUI().use n'est exécuté que quand tout les scripts sont chargés de façon asynchrone. De ce fait, quand le parser arrive à la fonction alert(), le code de YUI n'a pas encore été exécuté et window.objet vaut toujours null.&lt;/p&gt;


&lt;h3&gt;Utilisons les événements personnalisés !!&lt;/h3&gt;


&lt;p&gt;On se rapproche du but en s'orientant vers les custom events de YUI. YUI3 propose une gestion des évenements perso vraiment très pratique et très simple. On peut faire lacher un évenement de n'importe quel type par tout les objets encapsulés dans YUI. Et on les écoute aussi facilement. La preuve par l'exemple&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;javascript&quot;&gt;YUI&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'event'&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Y&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
	objet = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; MaClasse&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;label: &lt;span style=&quot;color: #3366CC;&quot;&gt;'truc'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
	&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Écoute de l'évenement &amp;quot;MonEvent:estLance&amp;quot;&lt;/span&gt;
	Y.&lt;span style=&quot;color: #006600;&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;
		&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;MonEvent:estLance&amp;quot;&lt;/span&gt;,
		&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;arg&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
			&lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;arg&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
	&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// On met un timer pour lancer l'évenement plus tard :&lt;/span&gt;
	setTimeout&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;
		&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
			Y.&lt;span style=&quot;color: #006600;&quot;&gt;fire&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;MonEvent:estLance&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;'kikoo'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;,
		&lt;span style=&quot;color: #CC0000;&quot;&gt;5000&lt;/span&gt;
	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;


&lt;p&gt;Ainsi, 5 secondes après le chargement de la page, une alerte m'affichera &quot;kikoo&quot;. J'ai donc tenté cette solution par&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;javascript&quot;&gt;YUI&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'event'&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Y&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
	Y.&lt;span style=&quot;color: #006600;&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;
		&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;MonEvent:estLance&amp;quot;&lt;/span&gt;,
		&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;obj&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
			&lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;obj&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
YUI&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'event'&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;'maClasse'&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Y&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; objet = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; MaClasse&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;label: &lt;span style=&quot;color: #3366CC;&quot;&gt;'truc'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
	Y.&lt;span style=&quot;color: #006600;&quot;&gt;fire&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;
		&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;MonEvent:estLance&amp;quot;&lt;/span&gt;,
		objet
	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;


&lt;p&gt;Ça ne fonctionne pas, car les event sont limité au scope de la sandbox… Ah mais&amp;nbsp;! C'est agaçant&amp;nbsp;!&lt;/p&gt;


&lt;h3&gt;Évenements globaux&lt;/h3&gt;


&lt;p&gt;Après pas mal de recherches et de bidouilles, j'ai fini par comprendre le passage de la doc où il est expliqué le fonctionnement des évenements globaux. Et voici donc enfin la solution finale&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;javascript&quot;&gt;YUI&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'event'&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Y&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
	Y.&lt;span style=&quot;color: #006600;&quot;&gt;Global&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;
		&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;MonEvent:estLance&amp;quot;&lt;/span&gt;,
		&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;obj&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
			&lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;obj&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
YUI&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'event'&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;'maClasse'&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Y&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; objet = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; MaClasse&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;label: &lt;span style=&quot;color: #3366CC;&quot;&gt;'truc'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
	Y.&lt;span style=&quot;color: #006600;&quot;&gt;Global&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;fire&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;
		&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;MonEvent:estLance&amp;quot;&lt;/span&gt;,
		objet
	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;


&lt;p&gt;Et voilà comment je peux interférer sur des objets construits dans des sandbox différentes dès leur création&amp;nbsp;: faites leur cracher des événements globaux&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;YUI3 est un peu compliqué à cause de &lt;a href=&quot;http://alt-i.fr/post/2010/05/18/YUI3-nouvelle-approche-Javascript-library&quot; hreflang=&quot;fr&quot;&gt;ces bac à sables hermétiques&lt;/a&gt;, mais c'est réellement très puissant&amp;nbsp;! Bon courage&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/06/29/Evenements-cross-sand-box-avec-YUI3-javascript#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/06/29/Evenements-cross-sand-box-avec-YUI3-javascript#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/776</wfw:commentRss>
      </item>
    
  <item>
    <title>Astuce sélecteurs CSS3</title>
    <link>http://alt-i.fr/post/2010/05/22/Astuce-selecteurs-CSS3</link>
    <guid isPermaLink="false">urn:md5:055aaa0313770f83eae9015913a1ec3f</guid>
    <pubDate>Sat, 22 May 2010 12:44:00 +0200</pubDate>
    <dc:creator>Hadrien</dc:creator>
        <category>Développement</category>
        <category>CSS</category><category>developpement</category><category>W3C</category><category>web</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/37136574@N00/60106078&quot;&gt;&lt;img src=&quot;http://farm1.static.flickr.com/30/60106078_9f9492f363_m.jpg&quot; alt=&quot;W3C or WC ?&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;&lt;/a&gt;Une petite astuce en CSS3 qui permet de sélectionner des lien selon le contenu de leur url. Imaginons que nous ayons une liste de liens vers des documents divers auquel on veut associer une icône relative à son type&amp;nbsp;: des PDF, des ODF, des PPT, des MP4, etc avec chacun une icone indiquant le type de fichier. Classiquement, on prévoira, coté serveur, de tester le type de fichier lors de la création de la liste et de rajouter une classe indiquant le type. Mais si le développeur a oublié, et c'est encore possible grâce aux sélecteurs CSS3.&lt;/p&gt;

&lt;pre class=&quot;syntaxehl css&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.malistededocs&lt;/span&gt; a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;href$=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.pdf&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'pdf.png'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.malistededocs&lt;/span&gt; a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;href$=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.zip&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'zip.png'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.malistededocs&lt;/span&gt; a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;href$=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.ppt&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ppt.png'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.malistededocs&lt;/span&gt; a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;href$=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.mp4&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.malistededocs&lt;/span&gt; a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;href$=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.m4v&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.malistededocs&lt;/span&gt; a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;href$=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.avi&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.malistededocs&lt;/span&gt; a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;href$=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.mkv&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.malistededocs&lt;/span&gt; a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;href$=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.mov&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'video.ppt'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Le sélecteur [attribut$=valeur] permet de chercher les éléments dont l'attribut indiqué se termine par la valeur. On se réfèrera à &lt;a href=&quot;http://www.w3.org/TR/css3-selectors/#univnmsp&quot; hreflang=&quot;en&quot;&gt;la doc du W3C&lt;/a&gt; pour découvrir les autres types de sélecteurs&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[att]&amp;nbsp;: trouve les éléments qui possèdent l'attribut att,&lt;/li&gt;
&lt;li&gt;[att=val]&amp;nbsp;: trouve les éléments qui possèdent l'attribut att et qui vaut exactement val,&lt;/li&gt;
&lt;li&gt;[att~=val]&amp;nbsp;: val est une liste de mot séparés par des espaces. Ce sélecteur trouve les éléments qui possèdent l'attribut att et dont la valeur est exactement l'une de celles de la liste val,&lt;/li&gt;
&lt;li&gt;[att|=val]&amp;nbsp;: trouve les éléments qui possèdent l'attribut att et qui vaut exactement val ou val-. Utile pour les attributs de langue où &lt;a href=&quot;http://alt-i.fr/post/2010/05/22/=en&quot;&gt;att&lt;/a&gt; retrouvera &quot;en&quot;, mais aussi &quot;en-EN&quot; ou &quot;en-US&quot;,&lt;/li&gt;
&lt;li&gt;[att^=val]&amp;nbsp;: trouve les éléments dont la valeur de att commence par val&lt;/li&gt;
&lt;li&gt;[att$=val]&amp;nbsp;: trouve les éléments dont la valeur de att finit par val&lt;/li&gt;
&lt;li&gt;[att*=val]&amp;nbsp;: trouve les éléments dont la valeur de att contient val&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://alt-i.fr/post/2010/05/22/Astuce-selecteurs-CSS3#comment-form</comments>
      <wfw:comment>http://alt-i.fr/post/2010/05/22/Astuce-selecteurs-CSS3#comment-form</wfw:comment>
      <wfw:commentRss>http://alt-i.fr/feed/atom/comments/767</wfw:commentRss>
      </item>
    
</channel>
</rss>
