<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.llaumgui.com/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>Le blog de llaumgui - Balise - MooTools</title>
  <link>http://www.llaumgui.com/</link>
  <atom:link href="http://www.llaumgui.com/feed/tag/MooTools/rss2" rel="self" type="application/rss+xml"/>
  <description>Linux en général, Fedora en particulier...</description>
  <language>fr</language>
  <pubDate>Fri, 05 Sep 2008 12:03:37 +0200</pubDate>
  <copyright>http://creativecommons.org/licenses/by-nc-nd/2.5/</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Fedora-Fr v4.1, étude de cas d'un site sous eZ Publish</title>
    <link>http://www.llaumgui.com/post/Fedora-Fr-v41-etude-de-cas-d-un-site-sous-eZ-Publish</link>
    <guid isPermaLink="false">urn:md5:3960cac836ff0e85f7e7ff6c8f0142be</guid>
    <pubDate>Thu, 14 Aug 2008 15:34:00 +0200</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>AJAX</category><category>apache</category><category>eZ Publish</category><category>eZFluxBB</category><category>fedora-fr</category><category>FluxBB</category><category>javascript</category><category>MooTools</category><category>php</category><category>PunBB</category><category>Web 2.0</category>    
    <description>&lt;p&gt;Cela fera bientôt 3 ans que je travaille avec le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Content_management_system&quot; hreflang=&quot;fr&quot; title=&quot;Content Management System&quot;&gt;CMS&lt;/a&gt; open-source &lt;a href=&quot;http://ez.no&quot; hreflang=&quot;en&quot; title=&quot;Open Source Enterprise Content Management System&quot;&gt;eZ Publish&lt;/a&gt; édité par la société eZ Systems. J'ai débuté cette expérience dans la société &lt;a href=&quot;http://www.kaliop.com&quot; hreflang=&quot;fr&quot; title=&quot;Kaliop Agence Multimedia SSII Web Agency&quot;&gt;Kaliop&lt;/a&gt;, et je la poursuis aujourd'hui, chez &lt;a href=&quot;http://www.logica.com/france&quot; hreflang=&quot;fr&quot; title=&quot;Releasing your potential&quot;&gt;Logica&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Que ce soit en temps qu'expert, consultant ou développeur (« simple » ou référent), j'ai eu la chance de collaborer sur un grand nombre de projets différents utilisant cet outil. Des projets tels que des sites institutionnels (&lt;a href=&quot;http://www.wwf.fr&quot; hreflang=&quot;fr&quot; title=&quot;Organisation mondiale de protection de l'environnement&quot;&gt;WWF&lt;/a&gt;, &lt;a href=&quot;http://www.univ-montp1.fr&quot; hreflang=&quot;fr&quot;&gt;UM1&lt;/a&gt;), des (extra|intra)nets, des usines à sites, ou encore, dernièrement, un portail immobilier avec plus de 150.000 objets eZ (prévoyez 2 jours pour l'import sur un octo proc' ;-)).&lt;/p&gt;


&lt;p&gt;Cependant, jusqu'à présent, mon utilisation d'eZ Publish s'était cantonnée au monde professionnel et je n'avais pas de site « personnel » (je mets entre guillemets car &lt;a href=&quot;http://www.fedora-fr.org&quot; hreflang=&quot;fr&quot; title=&quot;Communauté francophone Fedora&quot;&gt;Fedora-Fr&lt;/a&gt; n'est pas un &lt;em&gt;site perso&lt;/em&gt;, mais un site que &lt;em&gt;je gère personnellement&lt;/em&gt;...) utilisant cette technologie. J'avais bien commencé le portage de &lt;a href=&quot;http://www.scenario-paintball.com&quot; hreflang=&quot;fr&quot; title=&quot;Le repaire des fougères&quot;&gt;Scénario-Paintball&lt;/a&gt; sous eZ, mais je suis toujours en attente d'une charte graphique (Rad' si tu me lis...).&lt;br /&gt;
Bref, la refonte de Fedora-Fr sous eZ arrivait à point nommé pour m'offrir un petit bac à sable pour toucher d'encore plus près l'outil, développer autour et reverser du code à la communauté.&lt;/p&gt;


&lt;p&gt;Cette migration s'est faite en 2 temps; le premier, la bascule du &lt;a href=&quot;http://planet.fedora-fr.org&quot; hreflang=&quot;fr&quot; title=&quot;Planet Fedora-Fr&quot;&gt;Planet&lt;/a&gt; de &lt;a href=&quot;http://www.dotclear.net&quot; hreflang=&quot;fr&quot; title=&quot;Gestionnaire de blog&quot;&gt;Dotclear&lt;/a&gt; (+plugin planet) vers eZ; suivie dans un deuxième temps par le passage du site www.fedora-fr.org (le portail) sous eZ.&lt;/p&gt;    &lt;h2&gt;Le choix d'eZ&lt;/h2&gt;


&lt;p&gt;Comment s'est fait le choix d'eZ Publish ? Le premier choix qui a été fait à été celui de changer la structure d'avant qui souffrait de 2 problèmes majeurs :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le premier venait du planet qui avait tendance à sauter des blogs voir même à arrêter l'indexation de ces derniers... Dotclear montrant ses limites, il fallait le changer.&lt;/li&gt;
&lt;li&gt;Le deuxième problème venait de la structure même du portail de Fedora-Fr. C'était un portail 100% maison développé par mes soins, mais utilisant un grand nombre de fonctions &lt;a href=&quot;http://punbb.informer.com&quot; hreflang=&quot;en&quot; title=&quot;In short, PunBB is a fast and lightweight PHP powered discussion board&quot;&gt;PunBB&lt;/a&gt;. Je craignais que le passage à la 1.3 de PunBB (qui sera en fait la 1.3 de &lt;a href=&quot;http://fluxbb.org/&quot; hreflang=&quot;en&quot; title=&quot;FluxBB is a free open source forum application designed to be fast, light and user friendly&quot;&gt;FluxBB&lt;/a&gt;) ne cause pas mal de problèmes et demande beaucoup de réécriture de code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J'ai donc fait le choix de revoir ma copie et de ne plus faire un portail autour de PunBB mais de prendre un CMS déjà existant et de lui permettre de communiquer avec PunBB/FluxBB.&lt;/p&gt;


&lt;p&gt;Mon bagage en eZ, ainsi que le fait qu'il correspondait parfaitement à nos besoins (notamment la fonction d'import/export de contenu via RSS), ont fait que c'est naturellement que je me suis tourné vers cette solution et que j'ai commencé le développement d'&lt;a href=&quot;http://www.llaumgui.com/tag/eZFluxBB&quot;&gt;eZFluxBB&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;eZFluxBB&lt;/h3&gt;


&lt;p&gt;A l'heure où j'écris ces quelques lignes (dans un &lt;a href=&quot;http://www.starbucks.fr/&quot; hreflang=&quot;fr&quot; title=&quot;Starbucks Coffee&quot;&gt;Starbucks&lt;/a&gt; Parisien, la classe ;-)), &lt;a href=&quot;http://trac.llaumgui.com/wiki/eZFluxBB&quot; hreflang=&quot;fr&quot; title=&quot;eZFluxBB (Connecteur FluxBB pour eZ publish )&quot;&gt;eZFluxBB est disponible en version 1.O RC1 sur mon Trac&lt;/a&gt;. Il est parfaitement fonctionnel et il ne me reste qu'à faire la documentation : exportation de la doc francophone en PDF via Trac et traduction de cette dernière en anglais. Une fois que cela sera fait, eZFluxBB sera packagé et reversé à la communauté.&lt;/p&gt;


&lt;h3&gt;Bien définir le rôle de chaque outil&lt;/h3&gt;


&lt;p&gt;Lorsque j'ai commencé le développement de la nouvelle version de Fedora-Fr (v4.1) sous eZ Publish, j'ai délimité le rôle de chaque outil :  &lt;strong&gt;FluxBB pour les forums et la gestion des membres; eZ Publish pour la partie publication&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;Il n'est aucunement prévu de faire une synchronisation des membres eZ/FluxBB ni même de permettre au visiteur de Fedora-Fr de se connecter sur le CMS. Cependant, comme eZFluxBB est sous &lt;a href=&quot;http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU&quot; hreflang=&quot;fr&quot; title=&quot;Licence publique générale GNU&quot;&gt;GPL&lt;/a&gt;, si la demande est là et si des volontaires sont motivés, pourquoi ne pas ajouter cette fonctionnalité à eZFluxBB : &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/4_0/reference/configuration_files/site_ini/usersettings/loginhandler&quot; hreflang=&quot;en&quot; title=&quot;configuration files  / site.ini  / [usersettings&quot;&gt;login handler&lt;/a&gt;  / loginhandler ] + &lt;a href=&quot;http://ez.no/ezpublish/documentation/configuration/configuration/cron_jobs&quot; hreflang=&quot;en&quot;&gt;cronjobs&lt;/a&gt; côté eZ, &lt;a href=&quot;http://fluxbb.org/wiki/developing_extensions#using_hooks&quot; hreflang=&quot;en&quot; title=&quot;Developing Extensions&quot;&gt;hook&lt;/a&gt; côté FluxBB. Cependant, je ne pense pas l'activer sur Fedora-Fr.&lt;/p&gt;


&lt;h2&gt;Structure eZ mise en place sur Fedora-Fr&lt;/h2&gt;


&lt;h3&gt;Les extensions&lt;/h3&gt;


&lt;p&gt;On est dans une architecture classique en eZ, à savoir : &lt;strong&gt;1 site = 1 extension&lt;/strong&gt;.&lt;br /&gt;
A cela, j'ai ajouté une extension dite &lt;em&gt;socle&lt;/em&gt; permettant de regrouper certains design, les traductions et certains paramètres propres à tous les sites de Fedora-Fr en eZ.&lt;/p&gt;


&lt;p&gt;Au extension &lt;em&gt;typées sites&lt;/em&gt;, s'ajoute:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://trac.llaumgui.com/wiki/eZFluxBB&quot; hreflang=&quot;fr&quot; title=&quot;eZFluxBB (Connecteur FluxBB pour eZ publish )&quot;&gt;eZFluxBB&lt;/a&gt; : Communication FluxBB / eZ&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://trac.llaumgui.com/wiki/MyUtils&quot; hreflang=&quot;fr&quot;&gt;MyUtils&lt;/a&gt; : Contient des fonctionnalités que je peux récupérer sur d'autres projets&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ez.no/developer/contribs/template_plugins/ezrssfeed&quot; hreflang=&quot;fr&quot; title=&quot;The extension contains a configurable rssfeed toolbar for displaying rssfeeds on your site&quot;&gt;ezrssfeed&lt;/a&gt; : Pratique pour afficher du contenu extrait de fils RSS sans avoir à le mettre en base&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ez.no/developer/contribs/applications/ez_oe_mce&quot; hreflang=&quot;en&quot; title=&quot;eZ OE MCE&quot;&gt;eZOE 5&lt;/a&gt; : Pour finir, notons que j'ai fait le choix de partir sur la version 5.0 beta d'eZ Online Editor, l'éditeur de contenu d'eZ à la place du traditionnel ezdhtml (v4)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Les classes&lt;/h3&gt;


&lt;p&gt;Je ne vais pas décrire toutes les classes utilisées sur les différents sites. Je vais simplement dire que plutôt que de créer des classes spécifiques par typologie de contenu, j'ai fait le choix que toutes les pages soient de la classe &lt;em&gt;page&lt;/em&gt; (ou &lt;em&gt;website&lt;/em&gt; pour les pages d'accueil). Ensuite, j'inclus les différents blocs (qui eux sont des contenus spécifiques) via l'éditeur eZOE.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.llaumgui.com/public/images/web/ez_publish/fedora-fr_classe_website.png&quot;&gt;&lt;img src=&quot;http://www.llaumgui.com/public/images/web/ez_publish/.fedora-fr_classe_website_m.jpg&quot; alt=&quot;Edition de la page d'accueil du site&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Edition de la page d'accueil du site&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Je me suis même amusé à personnaliser le &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/4_0/reference/configuration_files/contentstructuremenu_ini&quot; hreflang=&quot;en&quot; title=&quot;configuration files  / contentstructuremenu.ini&quot;&gt;contentstructuremenu.ini&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.llaumgui.com/public/images/web/ez_publish/blocs_ezfluxbb.png&quot;&gt;&lt;img src=&quot;http://www.llaumgui.com/public/images/web/ez_publish/.blocs_ezfluxbb_m.jpg&quot; alt=&quot;Utilisation d'eZFlux dans l'administration d'eZ Publish&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Utilisation d'eZFlux dans l'administration d'eZ Publish&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;Les différents sites de l'instance eZ Publish&lt;/h2&gt;


&lt;p&gt;L'une des forces d'eZ est de pouvoir créer plusieurs sites à partir d'une seule instance de l'outil. Voila ce que ça donne sur Fedora-Fr (je fais un peu de teasing sur les prochains projets....).&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.llaumgui.com/public/images/web/ez_publish/structure_ez_publish_fedora-fr.png&quot;&gt;&lt;img src=&quot;http://www.llaumgui.com/public/images/web/ez_publish/structure_ez_publish_fedora-fr.png&quot; alt=&quot;Les différents site eZ Publish de Fedora-Fr&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Les différents site eZ Publish de Fedora-Fr&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Concrètement, pour un professionnel, avec une bonne configuration des &lt;a href=&quot;http://httpd.apache.org/docs/2.2/fr/vhosts/examples.html&quot; hreflang=&quot;fr&quot; title=&quot;Exemples d'utilisations de VirtualHost&quot;&gt;vhost apache&lt;/a&gt;, cela permet de confier tout son système d'information à eZ : site institutionnel, extranet et intranet , etc...&lt;/p&gt;


&lt;h3&gt;Planet&lt;/h3&gt;


&lt;p&gt;Comme écrit plus haut, le planet a été le premier sous-domaine à migrer sous eZ. Bien que la fonction d'importation des flux RSS d'eZ a l'air taillé  sur mesure pour un planet, il souffre d'un manque de souplesse et elle m'aurait obligé à renseigner les flux RSS de chaque blog moi-même...&lt;/p&gt;


&lt;p&gt;Comme je suis fainéant (c'est un avantage en informatique il parait), j'ai fait le choix d'étendre la classe utilisateur et de modifier le cronjobs &lt;a href=&quot;http://pubsvn.ez.no/websvn2/filedetails.php?repname=nextgen&amp;amp;path=%2Ftrunk%2Fcronjobs%2Frssimport.php&amp;amp;sc=1&quot; hreflang=&quot;en&quot;&gt;rssimport.php&lt;/a&gt; en &lt;a href=&quot;http://trac.llaumgui.com/browser/ez_publish/myutils/trunk/cronjobs/planet.php&quot; hreflang=&quot;fr&quot;&gt;planet.php&lt;/a&gt; pour que ce dernier aille chercher les informations directement dans le profil des utilisateurs du groupe blogeur.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.llaumgui.com/public/images/web/ez_publish/class_user.png&quot;&gt;&lt;img src=&quot;http://www.llaumgui.com/public/images/web/ez_publish/.class_user_m.jpg&quot; alt=&quot;Edition de son profil Fedora-Fr&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Edition de son profil Fedora-Fr&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Le contenu de chaque billet est stocké dans un datatype &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/4_0/reference/datatypes/text_block&quot; hreflang=&quot;en&quot; title=&quot;datatypes  / text block&quot;&gt;Bloc-text&lt;/a&gt;, directement en HTML. Comme certaines versions de Dotclear utilisent des liens relatifs pour leurs smileys (ce qui invalide un flux, soit dit au passage) et que tous les blogs ne respectent pas les normes du &lt;a href=&quot;http://fr.wikipedia.org/wiki/W3C&quot; hreflang=&quot;fr&quot; title=&quot;World Wide Web Consortium&quot;&gt;W3C&lt;/a&gt; (je ne citerai pas de nom), cela m'a contraint à nettoyer les contenus avec &lt;a href=&quot;http://trac.llaumgui.com/browser/ez_publish/myutils/trunk/classes/myutilsfunctions.php#L63&quot; hreflang=&quot;fr&quot;&gt;quelques expressions régulières&lt;/a&gt; et à &lt;a href=&quot;http://trac.llaumgui.com/browser/ez_publish/myutils/trunk/classes/myutilsfunctions.php#L40&quot; hreflang=&quot;fr&quot;&gt;utiliser&lt;/a&gt; &lt;a href=&quot;http://fr2.php.net/tidy&quot; hreflang=&quot;fr&quot;&gt;php-Tidy&lt;/a&gt; (&lt;code&gt;yum install php-tidy&lt;/code&gt;, merci &lt;a href=&quot;http://blog.famillecollet.com/&quot; hreflang=&quot;fr&quot; title=&quot;Les RPMs de Remi&quot;&gt;Remi&lt;/a&gt;).&lt;/p&gt;


&lt;p&gt;Pour ceux qui seraient intéressés par mon, cronjob planet, il est disponible dans &lt;a href=&quot;http://trac.llaumgui.com/wiki/MyUtils&quot; hreflang=&quot;fr&quot;&gt;mon extension MyUtils&lt;/a&gt; téléchargeable sur &lt;a href=&quot;http://trac.llaumgui.com&quot; hreflang=&quot;fr&quot;&gt;mon Trac&lt;/a&gt; ou par &lt;a href=&quot;https://svn.llaumgui.com/ez_publish/myutils/trunk/&quot; hreflang=&quot;fr&quot;&gt;svn&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;WWW&lt;/h3&gt;


&lt;p&gt;Le portail est plus classique dans son développement, il s'agit en effet d'un site de présentation. Sa seule particularité est l'utilisation d'eZFluxBB pour récupérer les informations à partir de PunBB.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.llaumgui.com/public/images/web/ez_publish/ezfluxbb_demo.png&quot;&gt;&lt;img src=&quot;http://www.llaumgui.com/public/images/web/ez_publish/.ezfluxbb_demo_m.jpg&quot; alt=&quot;Démo d'eZFluxBB 1.0 RC1&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Démo d'eZFluxBB 1.0 RC1&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;Choix technologiques&lt;/h2&gt;


&lt;h3&gt;Cache statique&lt;/h3&gt;


&lt;p&gt;Passer un site de la recette à la production est toujours cause de stress. En effet, il est toujours difficile d'apprécier la charge que va provoquer une nouvelle application avec 3.000 à 4.000 utilisateurs quotidiens (quoi qu'il existe des logiciels pour ça). Les développeurs d'&lt;a href=&quot;http://ubuntuusers.de/&quot; hreflang=&quot;de&quot;&gt;UbuntuUser.de&lt;/a&gt; en ont &lt;a href=&quot;http://suivi.ubuntu-fr.org/post/Valse-des-nombres-sur-Ubuntu-fr#pnote-54-2&quot; hreflang=&quot;fr&quot; title=&quot;Valse des nombres sur Ubuntu-fr&quot;&gt;récemment fait les frais&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;En terme de performance, la référence était pour moi le site précédent. Basé sur PunBB, pas complètement &lt;a href=&quot;http://fr.wikipedia.org/wiki/Orient%C3%A9_objet&quot; hreflang=&quot;fr&quot; title=&quot;Programmation orientée objet&quot;&gt;POO&lt;/a&gt; ce qu'il faut le dire lui confère des pages servies en moins de 0,05s. Malheureusement, malgré tous les caches possibles et toutes les optimisations de développement envisageables, eZ, de par sa richesse fonctionnelle, n'arrivait pas à de tels scores. J'ai donc entrepris des tests de &lt;a href=&quot;http://ez.no/developer/articles/ez_publish_performance_optimization_part_3_of_3_practical_cache_and_template_solutions/static_cache&quot; hreflang=&quot;en&quot; title=&quot;ez publish performance optimization part 3 of 3: practical cache and template solutions  / static cache&quot;&gt;cache statique&lt;/a&gt; sur le planet. Les tests m'ont convaincu et j'ai mis en œuvre cette technique également sur le portail.&lt;/p&gt;


&lt;h4&gt;Concrètement qu'est-ce que le cache statique ?&lt;/h4&gt;


&lt;p&gt;Avant de servir la page, &lt;a href=&quot;http://fr.wikipedia.org/wiki/Apache_HTTP_Server&quot; hreflang=&quot;fr&quot;&gt;Apache&lt;/a&gt; va aller vérifier si elle existe dans un répertoire de cache. Si c'est le cas, il servira une simple page HTM, sinon, il servira une page issues d'eZ Publish. Le gain de performance est conséquent puisqu'on ne sert plus des pages php mais de simples pages HTML sans aucun calcul.&lt;/p&gt;

&lt;code class=&quot;apache&quot;&gt;&lt;span style=&quot;color: #adadad; font-style: italic;&quot;&gt;## Cache static&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteCond&lt;/span&gt; %&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;HTTP_USER_AGENT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; !^eZ\ Publish\ static\ cache\ generator$&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteCond&lt;/span&gt; /path/to/ez/static/fedora_portail/index.html -f&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteRule&lt;/span&gt; ^/$ /static/fedora_portail/index.html &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;L&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteCond&lt;/span&gt; %&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;HTTP_USER_AGENT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; !^eZ\ Publish\ static\ cache\ generator$&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteCond&lt;/span&gt; /path/to/ez/static/fedora_portail/index.html -f&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteRule&lt;/span&gt; ^$ /static/fedora_portail/index.html &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;L&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteCond&lt;/span&gt; %&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;REQUEST_METHOD&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;!^POST$&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteCond&lt;/span&gt; %&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;HTTP_USER_AGENT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; !^eZ\ Publish\ static\ cache\ generator$&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteCond&lt;/span&gt; /path/to/ez/static/fedora_portail$&lt;span style=&quot;color: #ff0000;&quot;&gt;1&lt;/span&gt;/index.html -f&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteRule&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;$ /static/fedora_portail$&lt;span style=&quot;color: #ff0000;&quot;&gt;1&lt;/span&gt;/index.html &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;L&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;RewriteRule&lt;/span&gt; !\.&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;gif|css|jpg|png|jar|ico|js&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;$ /index.php&lt;/code&gt;


&lt;h4&gt;Limitation&lt;/h4&gt;


&lt;p&gt;Comme il n'y a plus d'opérations &lt;a href=&quot;http://php.net&quot; hreflang=&quot;fr&quot;&gt;php&lt;/a&gt;, la page est la même pour tous. Ça ne dérange pas sur le planet, mais sur le portail, la barre d'utilisateur de PunBB est confiée à une requête &lt;a href=&quot;http://fr.wikipedia.org/wiki/AJAX&quot; hreflang=&quot;fr&quot; title=&quot;Asynchronous JavaScript and XML&quot;&gt;AJAX&lt;/a&gt; (voir plus bas).&lt;/p&gt;


&lt;p&gt;Le bug &lt;a href=&quot;http://issues.ez.no/9126&quot; hreflang=&quot;en&quot; title=&quot;Static cache uses old cache to create new cache on publishing&quot;&gt;#9126&lt;/a&gt; faisant que le cache d'eZ se regénérait à partir de la version déjà en cache, cela m'a contraint à mettre quelques fichiers d'eZ 4.0 à jour par rapport à la version 4.0.1.&lt;/p&gt;


&lt;h4&gt;L'utilisation du cache statique sur Fedora-Fr&lt;/h4&gt;


&lt;p&gt;Fedora-Fr ne confie pas la régénération du cache statique à eZ Publish. En effet, la page d'accueil possède des contenu indépendants d'eZ et le planet également. J'ai donc fait le choix via cronjobs de mettre à jour le planet toutes les heures et la page d'accueil toutes les 5 minutes.&lt;/p&gt;

&lt;code class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Planet&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt; * * * * &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$EZPUBLISHROOT&lt;/span&gt; &amp;amp;&amp;amp; &lt;span style=&quot;color: #007800;&quot;&gt;$PHP&lt;/span&gt; runcronjobs.php planet -q &lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; /dev/null; &lt;span style=&quot;color: #007800;&quot;&gt;$PHP&lt;/span&gt; bin/php/makestaticcache.php -s &lt;span style=&quot;color: #007800;&quot;&gt;$PLANET&lt;/span&gt; -f &lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Portail&lt;/span&gt;&lt;br /&gt;
*/&lt;span style=&quot;color: #000000;&quot;&gt;5&lt;/span&gt; * * * * &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$EZPUBLISHROOT&lt;/span&gt; &amp;amp;&amp;amp; &lt;span style=&quot;color: #007800;&quot;&gt;$PHP&lt;/span&gt; bin/php/makestaticcache.php -s &lt;span style=&quot;color: #007800;&quot;&gt;$WWW&lt;/span&gt; -f &lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; /dev/null&lt;/code&gt;


&lt;h3&gt;MooTools&lt;/h3&gt;


&lt;p&gt;Fedora-Fr embarque la librairie &lt;a href=&quot;http://mootools.net/&quot; hreflang=&quot;en&quot; title=&quot;MooTools is a compact, modular, Object-Oriented JavaScript framework&quot;&gt;MooTools&lt;/a&gt; dans ça version 1.2. Son utilisation est essentiellement due à 2 points :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'événement &lt;a href=&quot;http://docs.mootools.net/Utilities/DomReady&quot; hreflang=&quot;en&quot; title=&quot;Window Event: domready&quot;&gt;domready&lt;/a&gt; qui &lt;a href=&quot;http://demos111.mootools.net/DomReadyVS.Load&quot; hreflang=&quot;en&quot; title=&quot;DomReady vs. Load&quot;&gt;comme le montre la démo&lt;/a&gt;, est bien plus rapide que le classique onload. Cet événement permet notamment de gérer les requêtes AJAX avant le chargement total de la page ce qui fait que vous ne voyez presque pas que la page se charge en 2 temps.&lt;/li&gt;
&lt;li&gt;L'autre raison est une volonté d'aller plus vers le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Web_2.0&quot; hreflang=&quot;fr&quot;&gt;web 2.0&lt;/a&gt; (même si je n'aime pas ce terme) avec l'utilisation d'info-bulles plus riches en informations et bien d'autres évolutions qui seront visibles avec l'arrivée de FluxBB 1.3.&lt;/li&gt;
&lt;/ul&gt;
&lt;code class=&quot;javascript&quot;&gt;window.&lt;span style=&quot;color: #006600;&quot;&gt;addEvent&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'domready'&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;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/* Récupération du brdwelcome en AJAX */&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&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;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'brdwelcome'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp;&amp;amp; $&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'brdwelcome'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;hasClass&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'ajax'&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;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Requète AJAX en 1 ligne...&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'brdwelcome'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;load&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; ezroot + &lt;span style=&quot;color: #3366CC;&quot;&gt;'ajax/brdwelcome.php'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&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;/code&gt;


&lt;h3&gt;Design&lt;/h3&gt;


&lt;p&gt;La façon dont les designs sont gérés sur Fedora-Fr diffère quelque peu des sites eZ classiques. En effet, après avoir hésité avec une utilisation classique conjointe à l'emploi d'&lt;a href=&quot;http://www.llaumgui.com/post/ez-publish-ezoescript-et-ezoecss-2-bonnes-surprises-dans-ezoe&quot; hreflang=&quot;fr&quot; title=&quot;ezoescript et ezoecss : 2 bonnes surprises dans ezoe&quot;&gt;ezoescript et ezoecss&lt;/a&gt;, j'ai fait le choix de conserver la structure de Fedora-Fr actuelle. A savoir, utiliser un sous domaine (common) pour les javascripts, les images et les feuilles de styles.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.llaumgui.com/public/images/web/ez_publish/fedora-fr_firebug.png&quot;&gt;&lt;img src=&quot;http://www.llaumgui.com/public/images/web/ez_publish/.fedora-fr_firebug_m.jpg&quot; alt=&quot;Fedora-Fr sous Firebug&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Fedora-Fr sous Firebug&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Cela permet, par exemple, de ne télécharger qu'une fois la librairie MooTools (60Ko normalement mais 19Ko une fois compressée) pour le portail et le planet. Ça me permet aussi d'avoir toutes mes feuilles de styles et mes javascript à un seul endroit et de les compresser facilement avec &lt;a href=&quot;http://developer.yahoo.com/yui/compressor/&quot; hreflang=&quot;en&quot; title=&quot;Yahoo! UI Library: YUI Compressor&quot;&gt;YUICompressor&lt;/a&gt;.&lt;/p&gt;


&lt;h2&gt;Et demain&lt;/h2&gt;


&lt;p&gt;Les projets futurs en eZ ?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Passer la &lt;a href=&quot;http://faq.fedora-fr.org/&quot; hreflang=&quot;fr&quot;&gt;Faq non-officielle&lt;/a&gt; sous eZ.&lt;/li&gt;
&lt;li&gt;eZFluxBB 1.1 compatible FluxBB 1.3. D'ailleurs, je travail actuellement sur la nouvelle version du forum utilisant FluxBB 1.3.&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/Fedora-Fr-v41-etude-de-cas-d-un-site-sous-eZ-Publish#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/Fedora-Fr-v41-etude-de-cas-d-un-site-sous-eZ-Publish#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/443</wfw:commentRss>
      </item>
    
  <item>
    <title>Charger des javascripts distants dans le &quot;domready&quot; de Mootools</title>
    <link>http://www.llaumgui.com/post/Charger-des-javascripts-distants-dans-le-domready-de-Mootools</link>
    <guid isPermaLink="false">urn:md5:4a0dd29a1ec198f9c6c07017f390e7b5</guid>
    <pubDate>Thu, 15 May 2008 20:22:00 +0200</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>javascript</category><category>MooTools</category><category>Twitter</category>    
    <description>&lt;p&gt;Certains l'avaient peut-être remarqué, depuis quelques jours, le blog ramait grave ! Les symptômes : le bandeau, qui change selon l'heure de la journée, ainsi que différentes couleurs du site mettaient du temps à s'afficher.&lt;/p&gt;


&lt;p&gt;La faute &lt;a href=&quot;http://twitter.com/badges/html&quot; hreflang=&quot;en&quot; title=&quot;Twitter / HTML Badge Customizer&quot;&gt;au script&lt;/a&gt; de &lt;a href=&quot;http://twitter.com&quot; hreflang=&quot;en&quot; title=&quot;What are you doing?&quot;&gt;Twitter&lt;/a&gt; qui ralentissait le chargement de la page et reculait d'autant l'évènement &lt;a href=&quot;http://docs.mootools.net/Window/Window-DomReady.js&quot; hreflang=&quot;en&quot; title=&quot;Documentation MooTools : Window.DomReady.js&quot;&gt;domready&lt;/a&gt; de &lt;a href=&quot;http://mootools.net&quot; hreflang=&quot;en&quot; title=&quot;MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer&quot;&gt;MooTools&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;C'est après avoir posé &lt;a href=&quot;http://forum.mootools.net/viewtopic.php?pid=48752#p48752&quot; hreflang=&quot;en&quot;&gt;la question&lt;/a&gt; sur &lt;a href=&quot;http://forum.mootools.net&quot; hreflang=&quot;en&quot;&gt;les forums de MooToos&lt;/a&gt; que la solution c'est offerte à moi : construire l'élément &amp;lt;script&amp;gt; qui appelle les javascripts de Twitter dynamiquement et dans le domready, c'est à dire une fois mon design en place.&lt;/p&gt;


&lt;p&gt;J'ai pour cela mis en place une petite fonction sur laquelle vous pouvez vous appuyer :&lt;/p&gt;    &lt;code class=&quot;javascript&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/* &lt;br /&gt;
&amp;nbsp;* Mootools : onDOMReady&lt;br /&gt;
&amp;nbsp;*&lt;br /&gt;
&amp;nbsp;* Remarque : les actions prioritaires en premier.&lt;br /&gt;
-------------------------------------------------------- */&lt;/span&gt;&lt;br /&gt;
window.&lt;span style=&quot;color: #006600;&quot;&gt;addEvent&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'domready'&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;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; nodoka&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Nodoka&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;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; scripts &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/* twitter */&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #3366CC;&quot;&gt;'http://twitter.com/javascripts/blogger.js'&lt;/span&gt;,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #3366CC;&quot;&gt;'http://twitter.com/statuses/user_timeline/llaumgui.json?callback=twitterCallback2&amp;amp;count=5&amp;quot;'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/* [ . . . ] */&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nodoka.&lt;span style=&quot;color: #006600;&quot;&gt;loadJS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; scripts &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/* [ . . . ] */&lt;/span&gt;&lt;br /&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;// EODR&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/* [ . . . ] */&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt; Nodoka&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;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/* [ . . . ] */&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/*&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Ajout des Javascripts distant&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @author Guillaume Kulakowski &amp;lt;guillaume_AT_llaumgui_DOT_com&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @since 1.0.1&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;loadJS&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt; loadJS&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; scripts &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;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; scripts.&lt;span style=&quot;color: #006600;&quot;&gt;each&lt;/span&gt;&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;src&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;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; loadJS = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Element&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'script'&lt;/span&gt;, &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #3366CC;&quot;&gt;'src'&lt;/span&gt;: src,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #3366CC;&quot;&gt;'type'&lt;/span&gt;: &lt;span style=&quot;color: #3366CC;&quot;&gt;'text/javascript'&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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: #006600;&quot;&gt;injectInside&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;document.&lt;span style=&quot;color: #006600;&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/* [ . . . ] */&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// EOC&lt;/span&gt;&lt;/code&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/Charger-des-javascripts-distants-dans-le-domready-de-Mootools#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/Charger-des-javascripts-distants-dans-le-domready-de-Mootools#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/430</wfw:commentRss>
      </item>
    
  <item>
    <title>Optimiser ses javascripts : le cas de mootools</title>
    <link>http://www.llaumgui.com/post/Optimiser-ses-javascripts-%3A-le-cas-de-mootools</link>
    <guid isPermaLink="false">urn:md5:5b8f8c868d4c852f91bcb14bd40b144e</guid>
    <pubDate>Thu, 17 Apr 2008 19:04:00 +0200</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>javascript</category><category>MooTools</category>    
    <description>&lt;p&gt;Avec le nouveau thème du blog, &lt;a href=&quot;http://www.llaumgui.com/post/../post/Nouveau-theme-pour-le-blog&quot; hreflang=&quot;fr&quot; title=&quot;Nouveau thème pour le blog&quot;&gt;Nodoka&lt;/a&gt;, c'est posé la question de l'optimisation des &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Javascript&quot;&gt;javascripts&lt;/a&gt;. En effet, &lt;a href=&quot;http://mootools.net/&quot; hreflang=&quot;en&quot; title=&quot;MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer&quot;&gt;mootools&lt;/a&gt; c'est bien, mais c'est lourd : &lt;strong&gt;87Ko&lt;/strong&gt; pour la version complète !&lt;/p&gt;
&lt;p&gt;J'ai donc essayé les différents moyens de compresser du javascript et j'en ai fait un tableau comparatif.&lt;/p&gt;    &lt;h2&gt;Comparatif des différentes méthodes de compression du code javascript&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Les tests suivants sont effectués à partir de la version complète de mootools 1.11.&lt;/em&gt;&lt;/p&gt;
&lt;table class=&quot;center border&quot;&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th&gt;Full&lt;/th&gt;
&lt;th&gt;Sans les commentaires&lt;/th&gt;
&lt;th&gt;&lt;a href=&quot;http://www.crockford.com/javascript/jsmin.html&quot; hreflang=&quot;en&quot; title=&quot;The JavaScript Minifier&quot;&gt;JSMin&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&quot;http://www.julienlecomte.net/yuicompressor&quot; hreflang=&quot;en&quot;&gt;YUI Compressor&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&quot;http://dean.edwards.name/packer/&quot; hreflang=&quot;en&quot; title=&quot;A JavaScript Compressor&quot;&gt;packer&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;180Ko&lt;/td&gt;
&lt;td&gt;87Ko&lt;/td&gt;
&lt;td&gt;73Ko&lt;/td&gt;
&lt;td&gt;65Ko&lt;/td&gt;
&lt;td&gt;41Ko&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Comme le démontre le tableau, la meilleure méthode de compression semble être packer. Mais après une discussion sur le chan #mootools (serveur &lt;a href=&quot;http://freenode.net/&quot; hreflang=&quot;en&quot;&gt;freenode.net&lt;/a&gt;), il semblerait que packer souffre de 2 problèmes :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;problème avec les &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Regex&quot;&gt;regex&lt;/a&gt; (pas tout compris à la démonstration : barrière de la langue &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; )&lt;/li&gt;
&lt;li&gt;moins compressible que YUI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C'est pour ça que mootools utilise YUI Compressor et j'ai donc suivi cette préconisation sur mon blog.&lt;/p&gt;
&lt;h2&gt;Pourquoi compresser du javascript pour gagner quelques malheureux kilo octets ?&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Une page &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Accessibilit%C3%A9_du_Web&quot;&gt;accessible&lt;/a&gt; devrait faire &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.accessiweb.org/fr/guide_accessiweb/guide-accessiweb-fiche-12-8.html&quot;&gt;moins de 70Ko&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La &lt;a href=&quot;http://developer.yahoo.com/performance/rules.html#minify&quot; hreflang=&quot;en&quot; title=&quot;Minify JavaScript and CSS&quot;&gt;réduction du poids des javascripts et des CSS fait partie des préconisations Yahoo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Économie de bande passante&lt;/li&gt;
&lt;li&gt;Certains ne réalisent pas qu'en France avec nos superbes connections on est des privilégiés (pensez y lorsque vous collez une signature de plus de 1Mo attachée à vos postes dans des forums...)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Aller plus loin&lt;/h2&gt;
&lt;p&gt;Mais les 65Ko obtenus avec YUI Compressor ne sont pas une fin en soit. Il est ensuite possible de compresser le JS pour en faire un &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Gzip&quot;&gt;gzip&lt;/a&gt;. Attention : je ne parle pas de &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.llaumgui.com/post/Montee-en-charge-et-compression-Gzip-des-pages-servies&quot; title=&quot;Montée en charge et compression Gzip des pages servies&quot;&gt;faire consommer du CPU pour compresser à la volée&lt;/a&gt;, mais de compresser une fois pour toute :&lt;/p&gt;
&lt;code class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cp&lt;/span&gt; moootols.js mootools.jgz&lt;br /&gt;
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;gzip&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;-9&lt;/span&gt; mootools.jgz&lt;br /&gt;
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;mv&lt;/span&gt; mootools.jgz.gz mootools.jgz&lt;/code&gt;
&lt;p&gt;Ensuite on modifie l'inclusion de la librairie :&lt;/p&gt;
&lt;code class=&quot;html&quot;&gt;&amp;lt;script src=&amp;quot;/themes/nodoka/js/mootools.jgz&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/code&gt;
&lt;p&gt;Et on effectue &lt;a href=&quot;http://joseph.randomnetworks.com/archives/2006/07/13/compressed-javascript/#comment-52297&quot; hreflang=&quot;en&quot; title=&quot;Compressed JavaScript&quot;&gt;un petit réglage sur son serveur pour penser à ceux qui ne supportent pas la compression Gzip&lt;/a&gt; :&lt;/p&gt;
&lt;code class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# JGZ &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;compression JS&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
RewriteCond %&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;HTTP_USER_AGENT&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.*Safari.*&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;OR&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
RewriteCond %&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;HTTP:Accept-Encoding&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt; !&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;gzip&lt;/span&gt;&lt;br /&gt;
RewriteRule &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;.*&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;\.jgz$ $&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;\.js &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;L&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
AddType &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/javascript;charset=UTF-8&amp;quot;&lt;/span&gt; .jgz&lt;br /&gt;
AddEncoding &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;gzip&lt;/span&gt; .jgz&lt;/code&gt;
&lt;p&gt;Voila au final mootools complet ramené de &lt;strong&gt;87Ko à  19Ko&lt;/strong&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/Optimiser-ses-javascripts-%3A-le-cas-de-mootools#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/Optimiser-ses-javascripts-%3A-le-cas-de-mootools#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/413</wfw:commentRss>
      </item>
    
  <item>
    <title>Utiliser mootools dans Dotclear 2.0</title>
    <link>http://www.llaumgui.com/post/Utiliser-mootools-dans-Dotclear-20</link>
    <guid isPermaLink="false">urn:md5:eb1b8f273e412e8c43d72013d9402698</guid>
    <pubDate>Wed, 16 Apr 2008 19:17:00 +0200</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>Dotclear</category><category>framework</category><category>javascript</category><category>jQuery</category><category>MooTools</category><category>YUI Compressor</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.dotclear.net/&quot; hreflang=&quot;fr&quot; title=&quot;Gestionnaire de blog&quot;&gt;Dotclear&lt;/a&gt;, le gestionnaire de blog, dans sa version 2.0 (&lt;a href=&quot;http://www.dotclear.net/blog/post/2008/04/05/En-mai-fais-ce-quil-te-plait&quot; hreflang=&quot;fr&quot; title=&quot;En mai fais ce qu'il te plaît&quot;&gt;dont la RC1 devrait pointer le bout de son nez le 1er mai&lt;/a&gt;) utilise &lt;a href=&quot;http://jquery.com/&quot; hreflang=&quot;en&quot; title=&quot;The Write Less, Do More, JavaScript Library&quot;&gt;jQuery&lt;/a&gt; comme librairie &lt;a href=&quot;http://fr.wikipedia.org/wiki/Javascript&quot; hreflang=&quot;fr&quot;&gt;javascript&lt;/a&gt;.
Notons au passage que l'utilisation d'une telle librairie permet de
gagner un temps de développement précieux et d'éviter d'éventuels
problèmes de compatibilité entre les différents navigateurs.&lt;/p&gt;
&lt;p&gt;Actuellement, l'utilisation du javascript dans le thème par défaut (Blowup) se limite à la gestion du cookie de la case &amp;quot;&lt;em&gt;Se souvenir de moi sur ce blog&lt;/em&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;J'aime beaucoup jQuery (je m'en suis servi dans mon précédent thème
et sur d'autres projets) mais professionnellement j'utilise beaucoup &lt;a href=&quot;http://mootools.net/&quot; hreflang=&quot;en&quot; title=&quot;MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer&quot;&gt;mootools&lt;/a&gt; et j'ai acquis des facilités avec ce framework.&lt;br /&gt;
Pour mon dernier thème, &lt;a href=&quot;http://www.llaumgui.com/post/../post/Nouveau-theme-pour-le-blog&quot; hreflang=&quot;fr&quot; title=&quot;Nouveau thème pour le blog&quot;&gt;Nodoka&lt;/a&gt;,
c'est donc mootools que j'ai retenu et j'ai donc eu à entreprendre de
porter le code de la gestion des cookies de jQuery vers mootools.&lt;br /&gt;
Histoire de vous faciliter la vie si vous aussi vous souhaitez utiliser
mootools dans vos thèmes Dotclear, je vous mets &lt;a hreflang=&quot;fr&quot; href=&quot;http://trac.llaumgui.com/browser/javascript/mootools_1.1.x/dc_remember&quot;&gt;mon bout de code à disposition&lt;/a&gt; ainsi que &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.llaumgui.com/post/svn%20co%20https://svn.llaumgui.com/javascript/dc_remember/&quot;&gt;la documentation&lt;/a&gt;.&lt;/p&gt;
&lt;code class=&quot;bash&quot;&gt;svn &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;co&lt;/span&gt; https://svn.llaumgui.com/javascript/mootools_1&lt;span style=&quot;color: #000000;&quot;&gt;.1&lt;/span&gt;.x/dc_remember/&lt;/code&gt;
&lt;p&gt;On remarquera qu'il y a 2 fichiers : un fichier source avec le code lisible et commenté; et une version compressée avec &lt;a href=&quot;http://developer.yahoo.com/yui/compressor/&quot; hreflang=&quot;en&quot; title=&quot;Yahoo! UI Library: YUI Compressor&quot;&gt;YUI Compressor&lt;/a&gt;. D'ailleur, La compression des javascripts donnera bientôt lieu à un nouveau billet.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/Utiliser-mootools-dans-Dotclear-20#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/Utiliser-mootools-dans-Dotclear-20#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/412</wfw:commentRss>
      </item>
    
  <item>
    <title>Nouveau thème pour le blog</title>
    <link>http://www.llaumgui.com/post/Nouveau-theme-pour-le-blog</link>
    <guid isPermaLink="false">urn:md5:8906c78baaf2796eeea416b1cdc2ccf3</guid>
    <pubDate>Sun, 13 Apr 2008 17:46:00 +0200</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Geek Attitude</category>
        <category>Dotclear</category><category>javascript</category><category>jQuery</category><category>llaumgui.com</category><category>MooTools</category><category>thème</category>    
    <description>    &lt;p&gt;Après pas mal de temps passé, de recherche, de codage, d'effaçage puis de re-codage : voici la nouvelle version du blog.&lt;br /&gt;Le thème s'appelle &lt;em&gt;Nodoka&lt;/em&gt; et il est clairement &lt;a hreflang=&quot;en&quot; href=&quot;http://fedoraproject.org/wiki/Artwork/NodokaTheme&quot; title=&quot;Thème Nodoka&quot;&gt;inspiré du thème GTK2 de Fedora&lt;/a&gt; ;-). Pour le moment on est en version &lt;del&gt;alpha&lt;/del&gt;bêta mais il devrait s'enrichir au fil des jours.&lt;/p&gt;
&lt;p&gt;Les nouveautés :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Nouveau look, c'est le plus visible &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Evolution des couleurs et du bandeau avec l'heure... Comme le bureau de  Fedora&lt;/li&gt;
&lt;li&gt;Mise en avant de le possibilité de souscrire par email aux commentaires d'un billet et de &lt;a href=&quot;http://www.llaumgui.com/subscribetocomments&quot; hreflang=&quot;fr&quot;&gt;gérer ses abonnements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2 nouvelles pages.
&lt;ul&gt;
&lt;li&gt;La première, &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.llaumgui.com/pages/credits-mentions-legales&quot;&gt;Crédit et mentions légales&lt;/a&gt; avec les copyrights/copylefts d'à peu près tout&lt;/li&gt;
&lt;li&gt;La seconde, &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.llaumgui.com/pages/a-propos&quot;&gt;A propos du blog&lt;/a&gt; avec les anciennes versions et des informations sur le blog.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Réécriture des javascripts de &lt;a href=&quot;http://www.dotclear.net/&quot; hreflang=&quot;fr&quot;&gt;Dotclear&lt;/a&gt; pour tourner avec &lt;a href=&quot;http://mootools.net/&quot; hreflang=&quot;en&quot;&gt;mootools&lt;/a&gt; à la place de &lt;a href=&quot;http://jquery.com/&quot; hreflang=&quot;en&quot;&gt;jQuery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Blog valide CSS 2.1 et xHTML 1.0 Strict&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/Nouveau-theme-pour-le-blog#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/Nouveau-theme-pour-le-blog#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/411</wfw:commentRss>
      </item>
    
</channel>
</rss>