<?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 - AJAX</title>
  <link>http://www.llaumgui.com/</link>
  <atom:link href="http://www.llaumgui.com/feed/tag/AJAX/rss2" rel="self" type="application/rss+xml"/>
  <description>Linux en général, Fedora en particulier...</description>
  <language>fr</language>
  <pubDate>Fri, 21 Nov 2008 14:09:34 +0100</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/eZ Publish/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/eZ Publish/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/atom/comments/443</wfw:commentRss>
      </item>
    
  <item>
    <title>jQuery 1.2 est dans les bacs</title>
    <link>http://www.llaumgui.com/post/jQuery-12-est-dans-les-bacs</link>
    <guid isPermaLink="false">urn:md5:99b38e5da0f2211d20e4778edd3accef</guid>
    <pubDate>Tue, 11 Sep 2007 13:53:00 +0200</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>AJAX</category><category>eZ Publish</category><category>framework</category><category>javascript</category><category>jQuery</category><category>Scénario-PaintBall</category>    
    <description>    &lt;p&gt;C'est juste au moment où je suis en train de réfléchir aux côtés dynamiques, &lt;a href=&quot;http://fr.wikipedia.org/wiki/Web_2.0&quot; hreflang=&quot;fr&quot; title=&quot;Web 2.0&quot;&gt;2.0&lt;/a&gt; &amp;amp; funky de &lt;a href=&quot;http://www.scenario-paintball.com/&quot; title=&quot;Scenario-Paintball, le repaire des fougères&quot; hreflang=&quot;fr&quot;&gt;Scénario-PaintBall&lt;/a&gt; v3; que mon &lt;a href=&quot;http://fr.wikipedia.org/wiki/Framework&quot; hreflang=&quot;fr&quot;&gt;framework&lt;/a&gt; &lt;a href=&quot;http://fr.wikipedia.org/wiki/JavaScript&quot; hreflang=&quot;fr&quot;&gt;JavaScript&lt;/a&gt; / &lt;a href=&quot;http://fr.wikipedia.org/wiki/Asynchronous_JavaScript_And_XML&quot; hreflang=&quot;fr&quot;&gt;&lt;acronym title=&quot;Asynchronous JavaScript and XML&quot;&gt;AJAX&lt;/acronym&gt;&lt;/a&gt; préféré voit publier &lt;a href=&quot;http://jquery.com/blog/2007/09/10/jquery-12-jqueryextendawesome/&quot; hreflang=&quot;en&quot; title=&quot;jQuery 1.2&quot;&gt;sa version 1.2&lt;/a&gt;.&lt;br /&gt;
Pour ceux qui ne le connaissent pas (encore), &lt;a href=&quot;http://jquery.com/&quot; hreflang=&quot;en&quot; title=&quot;Write less, do more&quot;&gt;jQuery&lt;/a&gt; est une bibliothèque permettant de « Write less, do more » (Traduction partisane : « Faire un max de choses en n'en foutant le moins possible » ; j'adore ce slogan !) et qui surtout est compatible tous navigateurs. Dépassé (&lt;a hreflang=&quot;fr&quot; href=&quot;http://www.llaumgui.com/post/jQuery-UTF8-et-Internet-Explorer&quot; title=&quot;jQuery, UTF8 et Internet Explorer&quot;&gt;enfin presque&lt;/a&gt;) le temps où l'on perdait du temps à déboguer ses &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; sous &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.microsoft.com/france/windows/products/winfamily/ie/default.mspx&quot; title=&quot;Berk ! ! !&quot;&gt;Internet Explorer&lt;/a&gt; !&lt;/p&gt;
&lt;p&gt;Je vais donc explorer, pour SPB, les nouvelles pistes offertes par jQuery 1.2.&lt;br /&gt;
Comme certaines librairies peuvent être incompatibles entre elles et que je ne veux pas forcer à l'utilisation d'un framework en particulier : je ne pense pas utiliser jQuery dans &lt;a href=&quot;http://trac.llaumgui.com/wiki/eZ Publish/eZipb/eZipb-shoutbox&quot; hreflang=&quot;fr&quot; title=&quot;Shoutbox pour ezipb utilisant l'AJAX.&quot;&gt;ezipb-shoutbox&lt;/a&gt;. &lt;br /&gt;Cependant, comme &lt;a hreflang=&quot;en&quot; href=&quot;http://ez.no&quot; title=&quot;eZ Publish Open Source Enterprise Content Management System&quot;&gt;eZ publish&lt;/a&gt; le permet, dans le cadre de mon site (qui est dans une extension), je vais surcharger &lt;a hreflang=&quot;fr&quot; href=&quot;http://trac.llaumgui.com/browser/ez_publish/ezipb-shoutbox/trunk/design/standard/javascript/shoutbox.js&quot;&gt;le JS d'ezipb-shoutbox&lt;/a&gt; et utiliser jQuery.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/jQuery-12-est-dans-les-bacs#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/jQuery-12-est-dans-les-bacs#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/atom/comments/351</wfw:commentRss>
      </item>
    
  <item>
    <title>Thème llaumgui-ng, Dotclear 2 et jQuery</title>
    <link>http://www.llaumgui.com/post/Theme-llaumgui-ng-Dotclear-2-et-jQuery</link>
    <guid isPermaLink="false">urn:md5:ca4c963ad0b7440a7fe55b340e063317</guid>
    <pubDate>Sun, 25 Feb 2007 23:49:00 +0100</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>AJAX</category><category>Dotclear</category><category>Google</category><category>jQuery</category><category>llaumgui.com</category><category>spam</category><category>thème</category><category>Web 2.0</category>    
    <description>&lt;p&gt;Je viens de basculer par défaut le thème &amp;quot;&lt;em&gt;llaumgui-ng&lt;/em&gt;&amp;quot; et je devrais bientôt retirer le thème &amp;quot;&lt;em&gt;llaumgui&lt;/em&gt;&amp;quot; de mon blog.
Ce nouveau thème est plus moderne est plus sérieux que le précédent. Il est pour le moment en version bêta et devrait évoluer graphiquement (couleur, header, etc...) et techniquement, me permettant ainsi de transformer LLaumguiDotCom en petit Labo &lt;a href=&quot;http://fr.wikipedia.org/wiki/Web_2.0&quot; hreflang=&quot;fr&quot;&gt;Web 2.0&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Pour agrémenter le design et améliorer l'ergonomie, j'utilise &lt;a href=&quot;http://www.jquery.com&quot; hreflang=&quot;en&quot;&gt;jQuery&lt;/a&gt;, la
librairie JavaScript proposée en standard dans &lt;a href=&quot;http://www.dotclear.net&quot; hreflang=&quot;fr&quot;&gt;DotClear&lt;/a&gt; 2 :&lt;/p&gt;


&lt;h2&gt;La liste des tags et le formulaire&lt;/h2&gt;

&lt;p&gt;L'onglet &lt;em&gt;Tags&lt;/em&gt; du menu du haut permet de faire dérouler la liste des tags, il en est de même pour le formulaire permettant de poster un commentaire qui par défaut est caché.
Pour cela j'utilise la fonction &lt;a href=&quot;http://docs.jquery.com/API/1.1/Effects#toggle.28.29&quot; hreflang=&quot;fr&quot;&gt;toggle()&lt;/a&gt; de jQuery pour afficher et masquer un élément CSS (&lt;em&gt;.tabstags&lt;/em&gt;) qui par défaut est masqué.&lt;/p&gt;
&lt;code class=&quot;Javascript&quot;&gt;$&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;document&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;ready&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;&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: #009900; font-style: italic;&quot;&gt;/* Gestion des tags déroulants */&lt;/span&gt;&lt;br /&gt;
&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;&amp;quot;li.tags a&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;click&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;&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: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;ul.tabstags&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;toggle&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;slow&amp;quot;&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;&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;
&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;h2&gt;Les info-bulles&lt;/h2&gt;

&lt;p&gt;Simple utilisation du plugin &lt;a href=&quot;http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/&quot; hreflang=&quot;en&quot;&gt;ToolTip&lt;/a&gt; disponible pour jQuery et activable via la syntaxe :&lt;/p&gt;
&lt;code class=&quot;Javascript&quot;&gt;$&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;document&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;ready&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;&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: #009900; font-style: italic;&quot;&gt;/* Plugin ToolTips */&lt;/span&gt;&lt;br /&gt;
&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;'a, input, img'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;Tooltip&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;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;h2&gt;Quelques idées à venir si elle ne demande pas de modification du kernel de Dotclear :&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Formulaire &lt;em&gt;Ajax powered&lt;/em&gt; pour éviter de recharger la page lorsqu'on demande une prévisualisation, sous condition que ça ne facilite pas le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Spam&quot; hreflang=&quot;fr&quot;&gt;SPAM&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Formulaire de recherche à la &lt;a href=&quot;http://www.google.com/ig&quot; hreflang=&quot;fr&quot;&gt;Google Sugeste&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Et bien plus encore ;-).&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/Theme-llaumgui-ng-Dotclear-2-et-jQuery#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/Theme-llaumgui-ng-Dotclear-2-et-jQuery#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/atom/comments/158</wfw:commentRss>
      </item>
    
  <item>
    <title>Les nouveauté d'IPB 2.1</title>
    <link>http://www.llaumgui.com/post/les-nouveaute-d-ipb-21</link>
    <guid isPermaLink="false">urn:md5:c3340d21c492bcf1fb72a9c29f5925b9</guid>
    <pubDate>Sat, 17 Sep 2005 01:28:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>AJAX</category><category>cache</category><category>IPB</category><category>IPB 2.1</category><category>IPS</category>    
    <description>&lt;p&gt;Il y a quelques jours, &lt;a href=&quot;http://www.invisionpower.com/&quot; hreflang=&quot;en&quot;&gt;IPS&lt;/a&gt; a publié la nouvelle version de son produit phare :
&lt;strong&gt;I&lt;/strong&gt;nvision &lt;strong&gt;P&lt;/strong&gt;ower &lt;strong&gt;B&lt;/strong&gt;oard
2.1.&lt;br /&gt;
Cette nouvelle version a bien sûr été installée sur les 4 forums que je gère,
mais la mise à jours n'a pas été si simple...&lt;/p&gt;
&lt;p&gt;En effet, &lt;a href=&quot;http://www.mattmecham.com/&quot; hreflang=&quot;en&quot;&gt;Matt&lt;/a&gt;, le
développeur, a modifié profondément la structure des répertoires d'IPB et a
renommé un grand nombre de variables principales telles que &lt;em&gt;$ibforums&lt;/em&gt;.
J'en ai donc profité pour relire, reformater et recommenter convenablement mon
code plutôt que de faire de bêtes &lt;em&gt;&amp;quot;rechercher/remplacer&lt;/em&gt;&amp;quot;.&lt;/p&gt;    &lt;p&gt;Une fois mon portail migré (IPB 2.1 + &lt;a href=&quot;http://www.ipbsdk.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;ipbSDK&lt;/a&gt; 1.6), je me suis
livré à une petite étude des nouveautés.&lt;/p&gt;
&lt;h2&gt;L'éditeur de texte enrichi :&lt;/h2&gt;
&lt;p&gt;La 2.1 offre le choix entre un éditeur classique relooké et un éditeur
enrichi en mode &lt;a href=&quot;http://fr.wikipedia.org/wiki/WYSIWYG&quot; hreflang=&quot;fr&quot;&gt;WYSIWYG&lt;/a&gt;. Même si pour le moment je teste cette fonction, qui est
quelque peu bugée, selon moi, force est de constater qu'un geek tape le
&lt;a href=&quot;http://fr.wikipedia.org/wiki/Bbcode&quot; hreflang=&quot;fr&quot;&gt;bbcode&lt;/a&gt; plus
rapidement à la main qu'avec un éditeur.&lt;/p&gt;
&lt;h2&gt;L'AJAX :&lt;/h2&gt;
&lt;p&gt;L'&lt;a href=&quot;http://fr.wikipedia.org/wiki/AJAX&quot; hreflang=&quot;fr&quot;&gt;AJAX&lt;/a&gt; est
très en vogue actuellement et pourrait être vulgarisé comme étant du php côté
serveur mais avec un dynamisme côté client.&lt;br /&gt;
Cependant Matt en a usé et abusé (&lt;a href=&quot;http://blog.mattmecham.com/archives/2005/05/my_assistant.html&quot; hreflang=&quot;en&quot;&gt;Mon assistant&lt;/a&gt; par exemple). Mais je retiens 2 fonctions très pratiques
: In-line Topic Editing et &lt;a href=&quot;http://blog.mattmecham.com/archives/2005/05/ajax_inline_pos.html&quot; hreflang=&quot;en&quot;&gt;In-line Post Editing&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Du RSS à foison :&lt;/h2&gt;
&lt;p&gt;Comme indiqué lors de &lt;a href=&quot;http://www.llaumgui.com/index.php/2005/09/17/49-my-rss-ipb-news-et-ipb-21&quot; hreflang=&quot;fr&quot;&gt;mon précédent billet&lt;/a&gt;, la 2.1 apporte la gestion du RSS pour
les forums et les calendriers. Cerise sur le gâteau, cette gestion passe par un
cache.&lt;/p&gt;
&lt;p&gt;Mais après avoir décortiqué ce cache, je me pose des questions sur son
utilité. Si dans mon esprit, un cache est fait pour faire un appel fichier en
lieu et place d'un requête MySQL, ici ce n'est pas le cas puisque les
informations sont stockée dans la base de donné.&lt;br /&gt;
En stockant les flux RSS dans un fichier sur le serveur, Matt aurait pu
économiser 1 connexion serveur ainsi qu'1 requête MySQL. Mais le cache n'est là
que pour avoir une requête simple à la place d'un requête musclée faisant appel
à plusieurs &lt;em&gt;LEFT JOIN&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Les questionnaires :&lt;/h2&gt;
&lt;p&gt;Matt a remplacé les &lt;em&gt;simple&lt;/em&gt; sondages par des questionnaires avec
plusieurs questions. Mais toujours 1 seule réponse par question ! Pourquoi
recoder un truc et ne pas tenir compte des demandes ?&lt;/p&gt;
&lt;h2&gt;L'anti-bump (&lt;em&gt;Merge member's concurrent posts&lt;/em&gt;) :&lt;/h2&gt;
&lt;p&gt;Petite fonction sympa qui fusionne les messages si on se répond à soit
même.&lt;/p&gt;
&lt;h2&gt;Les calendriers&lt;/h2&gt;
&lt;p&gt;Et oui, je dis &lt;ins&gt;les&lt;/ins&gt; car la version 2.1 permet la gestion de
plusieurs calendriers et leur modération. Cependant, on ne peut afficher qu'un
calendrier à la fois, il n'y a malheureusement pas de vue permettant d'afficher
tous les calendriers.&lt;/p&gt;
&lt;p&gt;Une autre faiblesse est la modération qui consiste à masquer l'évènement et
à ne le faire apparaître que pour les modérateurs et d'une autre couleur.
Encore faut-il que les modérateurs remarquent ces évènemlents en attente. En
effet, aucun message privé ni email pour les prévenir.&lt;/p&gt;
&lt;p&gt;Pour ceux qui veulent plus d'informations sur les nouveautés qu'apporte IPB
2.1, vous pouvez consulter le &lt;a href=&quot;http://forums.invisionpower.com/index.php?showtopic=189315&amp;st=0&amp;p=1274747&amp;#entry1274747&quot; hreflang=&quot;en&quot;&gt;changelog complet&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/les-nouveaute-d-ipb-21#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/les-nouveaute-d-ipb-21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/atom/comments/44</wfw:commentRss>
      </item>
    
</channel>
</rss>