<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Here With Me &#187; Plugins</title>
	<atom:link href="http://www.herewithme.fr/tag/plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.herewithme.fr</link>
	<description>Blog personnel et technique, Blog technique et personnel, Blog avant tout.</description>
	<lastBuildDate>Sun, 18 Sep 2011 11:41:21 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Gros nettoyage en vue dans le référentiel de plugins de WordPress.org !</title>
		<link>http://www.herewithme.fr/2011/08/15/gros-nettoyage-en-vue-dans-le-referentiel-de-plugins-de-wordpress-org/</link>
		<comments>http://www.herewithme.fr/2011/08/15/gros-nettoyage-en-vue-dans-le-referentiel-de-plugins-de-wordpress-org/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 08:42:03 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=1116</guid>
		<description><![CDATA[Matt vient d&#8217;annoncer, dans l&#8217;une de ses fameuses conférences &#171;&#160;State of the Word&#160;&#187;, que toutes les extensions n&#8217;ayant pas été mises à jour lors des 2 dernières années seront masquées du référentiel. Les raisons à ce changement sont multiples, Matt &#8230; <a href="http://www.herewithme.fr/2011/08/15/gros-nettoyage-en-vue-dans-le-referentiel-de-plugins-de-wordpress-org/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wpdevel.wordpress.com/2011/08/14/plugins-themes-two-years/">Matt vient d&#8217;annoncer</a>, dans l&#8217;une de ses fameuses conférences &laquo;&nbsp;State of the Word&nbsp;&raquo;, que toutes les extensions n&#8217;ayant pas été mises à jour lors des 2 dernières années seront masquées du référentiel.</p>
<p>Les raisons à ce changement sont multiples, Matt évoque des problèmes de conception, de sécurité, de compatibilité de ces plugins avec la version courante de WordPress. Je trouve qu&#8217;il a entièrement raison, le référentiel est devenu un véritable champ de ruine de plugins fait à un moment T et jamais mis à jour.</p>
<p>C&#8217;est d&#8217;ailleurs pour cette raison que je demande toujours à <a href="http://beapi.fr/clients/">mes client</a>s de faire valider les plugins qu&#8217;il souhaite rajouter à leur installation une fois un projet terminé. Cela permet d&#8217;éviter d&#8217;installer des plugins vieux comme le monde.</p>
<p>Par ailleurs, je trouve que le référentiel des plugins fait preuve d&#8217;un grand laxisme comparé à celui des thèmes. Je pense que les plugins devraient passer un stresstest afin d&#8217;être publiés sur le référentiel.</p>
<p>Je pense aux tests suivants :</p>
<ul>
<li>Internationalisation du code</li>
<li>Sécurisation du code avec les API de WP</li>
<li>Pas de notice avec la constante WP_DEBUG à true</li>
<li>Plugin développé en anglais uniquement</li>
</ul>
<p>Cela permettrait d&#8217;augmenter sensiblement le niveau de qualité des plugins sur le CMS WordPress.</p>
<p>Au 15 aout 2011, le référentiel compte 15 741 plugins, je pense qu&#8217;une fois cette amputation réalisée le nombre de plugins WordPress passera sous la barre des 10 000 plugins. Et je pense que si un stresstest était mis en place, alors on descendrait à 5000 plugins, des chiffres plus raisonnables non ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2011/08/15/gros-nettoyage-en-vue-dans-le-referentiel-de-plugins-de-wordpress-org/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Simple Punctual Translation, un plugin pour proposer ponctuellement des traductions sur votre site</title>
		<link>http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/</link>
		<comments>http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 12:27:05 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Traduction]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=1027</guid>
		<description><![CDATA[À BeAPI, il nous arrive fréquemment que l&#8217;on nous demande de réaliser des sites multilingues. Parfois, il s&#8217;agit de traduire l&#8217;intégralité du site, mais bien souvent il s&#8217;agit surtout de traduire les pages statiques de WordPress, ou certains articles très &#8230; <a href="http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>À <a href="http://beapi.Fr">BeAPI</a>, il nous arrive fréquemment que l&#8217;on nous demande de réaliser des sites multilingues.<br />
Parfois, il s&#8217;agit de traduire l&#8217;intégralité du site, mais bien souvent il s&#8217;agit surtout de traduire les pages statiques de WordPress, ou certains articles très populaires.</p>
<p>Face à ce besoin plutôt basique, il n&#8217;existe pas de solution magique sur WordPress&#8230;</p>
<h2>Les solutions existantes</h2>
<p>Pour faire court, on peut utiliser comme plugin :</p>
<ol>
<li> WPml</li>
<li> Qtranslate</li>
<li> Global Translator</li>
</ol>
<h3>WPML</h3>
<p>Ce plugin est le plus complet pour gérer les sites multilingues sous WordPress.<br />
Il propose de traduire tout : contenus, taxos, menus, widgets. Il permet aussi une traduction de son site par des personnes extérieures, bref.</p>
<p>Il fait plein de choses. Le problème se résume en 3 points :</p>
<ol>
<li> On ne peut pas désactiver la traduction sur les articles WP</li>
<li> Le code source est imbuvable, pourri et j&#8217;en passe. (il m&#8217;est arrivé de désactiver des fonctions PHP complètes, le plugin fonctionnait mieux&#8230;)</li>
<li> Il vient récemment de passer en mode payant</li>
</ol>
<p>De fait, à l&#8217;agence dès que l&#8217;on peut, on s&#8217;en passe bien volontiers !</p>
<h3>Qtranslate</h3>
<p>Alternative qui a l&#8217;avantage de proposer moins de fonctionnalités que WPML, mais avec une interface sympathique bien qu&#8217;imposant une contrainte en nombre de langues.<br />
(Chaque langue étant affiché dans la même page d&#8217;édition que le contenu initial, avec un basculement via des onglets)</p>
<p>Mon principal reproche concerne l&#8217;architecture du plugin, tout stocker dans les mêmes champs, et insérer des balises XML pour différencier les langues n&#8217;est pas une méthodologie viable.<br />
Par exemple, impossible de désactiver le plugin sans afficher tout le contenu en 3 triples. (si votre site possède 3 langues)</p>
<h3>Global Translator</h3>
<p>La traduction &laquo;&nbsp;low-cost&nbsp;&raquo; qui consiste à proposer une version traduite par les soins de Google, Babel Fish, Promt ou FreeTranslations de tout son site. Bien entendu le résultat est catastrophique la majorité du temps, et il n&#8217;est pas possible de proposer sa traduction. Bref, une solution pas exploitable en entreprise, mais qui très utile dans le cadre d&#8217;un blog personnel pour générer du trafic international. (mais non qualifié)</p>
<h2>Notre solution : Simple Punctual Translation</h2>
<p>Avec l&#8217;équipe de développement de <a href="http://beapi.fr">BeAPI</a>, on s&#8217;est mis en mode réflexion, on a imaginé toutes les fonctionnalités que l&#8217;on peut attendre d&#8217;un plugin open-source, l&#8217;architecture que l&#8217;on pourrait créer, l&#8217;impact sur les développements. Bon, je ne vous cache pas qu&#8217;on s&#8217;est bien aidé de Drupal pour lister toutes les fonctionnalités multilingues à prévoir.</p>
<p>Et puis face à un chantier aussi grand, on s&#8217;est dit qu&#8217;on ferait bien de commencer par une solution allégée de plugin multilingue. On a listé le besoin de base rencontré à l&#8217;agence, soit traduire certains types de contenus de WordPress et on a commencé le développement de Simple Punctual Translation.</p>
<p>Comme son nom l&#8217;indique, ce plugin permet de faire des traductions ponctuelles sur son site WordPress, ponctuel dans le sens nous n&#8217;allons traduire que certaines pages du site.</p>
<p>L&#8217;architecture retenue pour le développement est en pleine cohérence avec WordPress 3.0, nous avons créé un type de contenu traduction, et nous avons créé une taxonomie pour les langues du site. Nous avons personnalisé la console d&#8217;administration de WordPress pour proposer les fonctionnalités de traduction, un peu d&#8217;AJAX pour rendre l&#8217;interface pratique. Enfin, nous avons créé un widget affichant les langues disponibles pour le contenu actuellement chargé. Un rôle traducteur est automatiquement créé avec le plugin, il permet à un utilisateur de ce rôle d&#8217;uniquement pouvoir créer et gérer des traductions.</p>
<p>Les fonctionnalités utilisateurs se résume en la possibilité de switcher entre une et plusieurs langues sur la vue single d&#8217;un contenu. Ainsi, une page peut être traduite en X langues.</p>
<p>Le plugin propose les réglages suivants :</p>
<ul>
<li>Insertion automatique des langues disponibles à la fin d&#8217;article</li>
<li>Réécriture des URLs soit via un paramètre &laquo;&nbsp;lang&nbsp;&raquo; dans l&#8217;adresse ou via un préfixe en début d&#8217;adresse :
<ul>
<li>http://www.herewithme.fr/contenu/?lang=de</li>
<li>ou http://www.herewithme.fr/de/contenu</li>
</ul>
</li>
<li>Activation des traductions sur les post types de son choix</li>
<li>2 modes pour le mécanisme de traduction, que je détaillerai ci-dessous.</li>
</ul>
<p>Bien entendu, le plugin est disponible via le<a href="http://wordpress.org/extend/plugins/simple-punctual-translation/"> référentiel des extensions WordPress</a>.</p>
<h3>Moteurs de traduction</h3>
<p>Pour ce plugin, nous n&#8217;avons pas voulu imposer une architecture définie pour le moteur de traduction, alors nous avons proposé un mode automatique ou manuel.</p>
<p><strong>Mode automatique</strong></p>
<p>Le mode automatique est plutôt destiné au grand public, car aucune modification n&#8217;est nécessaire dans le code source. Le principe est le suivant, lorsqu&#8217;on navigue sur la version allemande d&#8217;une page, WordPress récupère les données originales de la page, et notre plugin vient automatiquement injecté le contenu allemand de 3 champs, le titre, le contenu et l&#8217;extrait.</p>
<p>Cela veut dire que la version allemande en mode automatique conservera, si votre thème l&#8217;affiche, la date de publication, les commentaires, l&#8217;auteur, les tags et les catégories de l&#8217;article original.</p>
<p>Ce mode suffit largement à un usage basique du plugin de traduction, sur des types de contenu natifs, il est compatible à 99% sur les installations WordPress existantes.</p>
<p><strong>Mode manuel</strong></p>
<p>Ce second mode est nettement plus puissant que le premier. Le mode manuel ne modifie aucune donnée de la requête initiale de WordPress, si aucune modification n&#8217;est portée sur le thème, votre contenu ne sera même pas traduit ! Pour switcher de langue, nous nous sommes inspirés des fonctions de WordPress Mu permettant des switcher de blogs, soit switch_to_blog() et restore_current_blog().</p>
<p>Et nous avons créé 2 fonctions switch_to_language() et restore_original_language().</p>
<p>La première fonction switch_to_language() permet de basculer le contenu dans la version traduite, tandis que la deuxième fonction permet de restaurer la langue originale du contenu.</p>
<p>Exemple :</p>
<pre style="padding-left: 30px;">&lt;?php
the_title(); // Title in English
switch_to_language();
 the_title(); // Title in French
restore_original_language();
the_title(); // Title in English
?&gt;</pre>
<p>Ce couple de fonctions permet aux développeurs d&#8217;être extrêmement précis sur les champs à traduire. Ce mode à mon sens, doit être largement privilégié, car il est propre, il n&#8217;interagit pas avec la requête initiale de WordPress. Néanmoins, il y a quelques défauts comme :</p>
<ul>
<li>Le titre HTML de la page n&#8217;est pas traduit</li>
<li>Les plugins de fil d&#8217;ariane ne prennent pas en compte la traduction</li>
</ul>
<p>Ce sont principalement des défauts concernant l&#8217;aspect SEO, et effectivement sur cette première version du plugin nous n&#8217;avons travaillé que l&#8217;aspect fonctionnel. Nous comptons sur les retours de la communauté pour améliorer le plugin&#8230;</p>
<h2>Le mot de la fin</h2>
<p>N&#8217;hésitez pas à tester ce plugin et nous faire vos retours sur le <a href="http://redmine.beapi.fr/projects/punctual-translation/">site redmine du projet. </a></p>
<p>Dernière précision, ce plugin a été développé sur WordPress 3.1, mode WP_Debug activé, il est rétro-compatible 3.0.</p>
<p>Pour conclure, il n&#8217;est pas compatible PHP4. (en fait je n&#8217;en sais rien, mais pour tout vous dire, je m&#8217;en fous royalement)</p>
<p><strong>Le plugin est image :</strong></p>
<p><strong>
<a href='http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/screenshot-2-2/' title='screenshot-2'><img width="150" height="150" src="http://www.herewithme.fr/wp-content/uploads/2011/02/screenshot-2-150x150.png" class="attachment-thumbnail" alt="screenshot-2" title="screenshot-2" /></a>
<a href='http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/screenshot-3-2/' title='screenshot-3'><img width="150" height="150" src="http://www.herewithme.fr/wp-content/uploads/2011/02/screenshot-3-150x150.png" class="attachment-thumbnail" alt="screenshot-3" title="screenshot-3" /></a>
<a href='http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/screenshot-4/' title='screenshot-4'><img width="150" height="103" src="http://www.herewithme.fr/wp-content/uploads/2011/02/screenshot-4-150x103.png" class="attachment-thumbnail" alt="screenshot-4" title="screenshot-4" /></a>
<a href='http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/screenshot-5/' title='screenshot-5'><img width="150" height="99" src="http://www.herewithme.fr/wp-content/uploads/2011/02/screenshot-5-150x99.png" class="attachment-thumbnail" alt="screenshot-5" title="screenshot-5" /></a>
<a href='http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/screenshot-6/' title='screenshot-6'><img width="150" height="150" src="http://www.herewithme.fr/wp-content/uploads/2011/02/screenshot-6-150x150.png" class="attachment-thumbnail" alt="screenshot-6" title="screenshot-6" /></a>
<a href='http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/screenshot-7/' title='screenshot-7'><img width="150" height="150" src="http://www.herewithme.fr/wp-content/uploads/2011/02/screenshot-7-150x150.png" class="attachment-thumbnail" alt="screenshot-7" title="screenshot-7" /></a>
<br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2011/02/15/simple-punctual-translation-plugin-pour-proposer-ponctuellement-des-traductions-sur-votre-site/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>WordPress 3.1 : Les évolutions envisagées</title>
		<link>http://www.herewithme.fr/2010/09/06/wordpress-3-1-les-evolutions-envisagees/</link>
		<comments>http://www.herewithme.fr/2010/09/06/wordpress-3-1-les-evolutions-envisagees/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 12:31:42 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Automattic]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Francophone]]></category>
		<category><![CDATA[WordPress Mu]]></category>
		<category><![CDATA[WP-Box]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=977</guid>
		<description><![CDATA[Cet article est basé sur l&#8217;article de Jane Wells publié sur le blog de développement de WordPress. Ça n&#8217;est pas une traduction stricte, mais une interprétation libre de ma part. Contrairement à WordPress 3.0, la version 3.1 se doit d&#8217;avoir &#8230; <a href="http://www.herewithme.fr/2010/09/06/wordpress-3-1-les-evolutions-envisagees/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>Cet article est basé sur l&#8217;<a href="http://wpdevel.wordpress.com/2010/09/03/process-and-scope-for-3-1-part-i/">article de Jane Wells</a> publié sur le blog de développement de WordPress. Ça n&#8217;est pas une traduction stricte, mais une interprétation libre de ma part.</em></p>
<p>Contrairement à WordPress 3.0, la version 3.1 se doit d&#8217;avoir un temps de développement court, les évolutions envisagées seront donc rapides, et il n&#8217;y aura pas de gros projets intégrés.</p>
<p>L&#8217;objectif de date pour la sortie finale de WordPress 3.1 est prévu pour mi-décembre 2010.</p>
<p>Cette version va avant tout privilégier les évolutions sur l&#8217;interface, la qualité et les performances du code et il n&#8217;y aura pas de modification sur le schéma. L&#8217;avis de l&#8217;équipe est de réserver les évolutions majeures pour WordPress 3.2, et ainsi produire un code de qualité en PHP5.</p>
<p><strong>Donc première chose à retenir : pas de modification de schéma et pas de nouvelles API importantes.</strong></p>
<h2>Ce que ne contiendra pas WordPress 3.1</h2>
<p><strong>La refonte des médias. </strong>Une mise à jour importante du gestionnaire des médias a été envisagée par l&#8217;équipe de dev, c&#8217;est aussi l&#8217;une des demandes les plus récurrentes de la communauté. Il ne changera pas pour la simple et bonne raison que le code en question est assez tordu et qu&#8217;il serait regrettable de développer quelque chose en PHP4 alors que WordPress 3.2 sera compatible PHP5 uniquement.</p>
<p>De plus, c&#8217;est un chantier qui demandera du temps, qui imposera des modifications sur le schéma de la base de données et sur l&#8217;interface utilisateur. De fait, c&#8217;est un chantier couteux en temps.</p>
<p>Pour WordPress 3.1, la seule évolution possible sur le gestionnaire de médias sera l&#8217;envoi de fichiers HTML.</p>
<p>L&#8217;autre point important qui ne sera pas modifié dans WordPress 3.1 concernant la <strong>gestion de widgets</strong>. En effet, le <strong>filtrage des widgets par vue</strong> article/page/catégorie ne pourra être travaillé que dans WordPress 3.2.</p>
<p>En attendant, les plugins proposent des solutions appréciables.</p>
<h2>Les fonctionnalités probables de WordPress 3.1</h2>
<p>1. Des évolutions prévues sur l&#8217;<strong>API de taxonomie</strong> afin d&#8217;effectuer des <strong>requêtes avancées</strong>. WordPress 3.0 avec les custom types et les custom taxonomies a radicalement changé la façon de penser un site WordPress. L&#8217;API des taxonomies évolue logiquement pour répondre à toutes les attentes.</p>
<p>2. Une refonte importante des rôles/permissions est demandée par certains membres de l&#8217;équipe WordPress, pour la version 3.1, une première version de l&#8217;<strong>API</strong> sera proposée avec des fonctions permettant de <strong>travailler plus facilement sur les utilisateurs</strong>. À l&#8217;heure actuelle, les requêtes SQL &laquo;&nbsp;maison&nbsp;&raquo; priment encore dans ce domaine.</p>
<p>3. Une nouvelle fonctionnalité est également envisagée, il s&#8217;agit des <strong>liens internes</strong>. Autrement dit, la possibilité de créer des relations entre les contenus de WordPress.<strong> Il s&#8217;agit de la principale évolution à mes yeux de WP 3.1 !</strong></p>
<p>Il fut un temps où seuls les articles relatifs permettaient de créer des liens entre les contenus, désormais il existe plusieurs plugins permettant de créer manuellement des liens entre le contenu (comme <a href="http://wordpress.org/extend/plugins/relation-post-types/">mon plugin Relation Post Types</a>). Cette fonctionnalité est en vive discussion sur le trac.</p>
<p>4.<strong> Les pages de l&#8217;administration vont être largement AJAXifié </strong>avec quelques modifications mineures d&#8217;interface. La modération des commentaires sera également revue.</p>
<p>5. La <strong>barre d&#8217;administration avec menu déroulant</strong>. Très utile pour les plateformes de sites, buddypress, la barre d&#8217;administration semblable à WordPress.com fera probablement son apparition. Mais comme tout le monde n&#8217;est pas d&#8217;accord, la fonctionnalité restera peut-être sur la forme d&#8217;un plugin. (<a href="http://wordpress.org/extend/plugins/wordpress-admin-bar/">le plugin de Viper007Bond</a> gère cela très bien pour le moment.)</p>
<p>6. Quelques <strong>simplifications et nettoyages de l&#8217;interface</strong> à travers toute l&#8217;application, et principalement le multi-site. Des pistes de recherche pour l&#8217;élaboration d&#8217;un tableau de bord personnel à la place du tableau de bord générale sont menées par Ryan. Ces modifications pourront être publiées dans WordPress 3.2 selon le planning.</p>
<p>7. Quelques <strong>corrections à prévoir sur l&#8217;API des custom post type</strong>s.</p>
<p>8. Modification de l&#8217;<strong>interface de la gestion de thèmes</strong> par la version de WordPress.com. Cette dernière est plus efficace, plus légère, supporte la recherche, etc. C&#8217;est une étape indispensable pour les personnes ayant un WordPress MS avec beaucoup de thèmes.</p>
<p>9. <strong>Les templates de pages pour les articles</strong>. Afin de pouvoir supporter des modèles comme les pages)</p>
<p>10. La <strong>fonctionnalité QuickPress</strong> sera disponible à travers une fonction afin de pouvoir <strong>afficher facilement un formulaire sur le thème</strong> utilisateur.</p>
<h2>Le planning</h2>
<p>La date de publication ne devrait pas dépasser le 15 décembre pour ne pas interférer avec les vacances.</p>
<ul>
<li>9 septembre : Confirmation du planning</li>
<li>15 octobre : feature freeze, pas de nouvelles fonctionnalités ajoutés dans le code</li>
<li>1er novembre : primary code freeze, fin de grands changements dans le code PHP</li>
<li>15 novembre :période de béta, plus d&#8217;amélioration, uniquement de la correction de bugs.</li>
<li>1 décembre : string freeze, traduction !</li>
<li>15 décembre : publication de WordPress 3.1</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2010/09/06/wordpress-3-1-les-evolutions-envisagees/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Présentation de VaultPress : La sécurité vue par Automattic</title>
		<link>http://www.herewithme.fr/2010/08/16/presentation-de-vaultpress-la-securite-vue-par-automattic/</link>
		<comments>http://www.herewithme.fr/2010/08/16/presentation-de-vaultpress-la-securite-vue-par-automattic/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 22:57:08 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Automattic]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=910</guid>
		<description><![CDATA[Il y a quelque temps, Matt et Automattic ont annoncé le lancement de VaultPress, un plugin permettant de sécuriser une installation WordPress. On me demande régulièrement, la meilleure méthode pour sécuriser un site web fonctionnant avec WordPress, et ma réponse &#8230; <a href="http://www.herewithme.fr/2010/08/16/presentation-de-vaultpress-la-securite-vue-par-automattic/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Il y a quelque temps, <a href="http://ma.tt/2010/03/vaultpress/">Matt</a> et Automattic ont annoncé le lancement de VaultPress, un plugin permettant de sécuriser une installation WordPress. On me demande régulièrement, la meilleure méthode pour sécuriser un site web fonctionnant avec WordPress, et ma réponse est la suivante : &laquo;&nbsp;Backup journalière des fichiers et de la base de données sur 2 points de stockage&nbsp;&raquo;. Et oui la meilleure sécurité, c&#8217;est la sauvegarde !</p>
<p style="text-align: center;"><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/screen-capture-2.png"><img class="aligncenter size-full wp-image-935" title="VaultPress - Tagline" src="http://www.herewithme.fr/wp-content/uploads/2010/08/screen-capture-2.png" alt="" width="444" height="65" /></a></p>
<p>Alors, lorsque j&#8217;ai appris le lancement de VaultPress, je me suis dit dans un premier temps : chouette un plugin améliorant la sécurité de WordPress, mais après avoir lu et visionner la vidéo de présentation, j&#8217;ai compris qu&#8217;il ne s&#8217;agissait que d&#8217;un plugin de backup automatique des données, alors effectivement on peut se poser la question de l&#8217;intérêt de ce service pour les personnes ayant un serveur dédié, mais sur un mutualisé milieu/haut de gamme et/ou pour un blog sensible le service peut s&#8217;avérer intéressant.</p>
<p style="text-align: center;"><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress_Limited_Registration.png"><img class="aligncenter size-medium wp-image-920" title="VaultPress Inscription à la béta" src="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress_Limited_Registration-300x267.png" alt="" width="300" height="267" /></a></p>
<p>J&#8217;ai donc décidé de postuler à l&#8217;inscription de la béta, une première fois pour mon blog perso, sans réussite. Et une seconde fois, pour le site WordPress Francophone, et bingo, 5 jours après je reçois la fameuse invitation permettant de s&#8217;inscrire au service !</p>
<p>Lors de l&#8217;inscription au service, on vous propose 3 niveaux de service, le basique qui comprend toutes les fonctionnalités de backup, le niveau premium qui offre du support technique en plus et enfin un niveau entreprise disponible après contact pour des services plus personnalisés, audit du code, etc. Le service basique est facturé 15$/mois, tandis que le service premium est facturé 40€/mois.</p>
<p>Dans le cadre de WordPress Francophone, j&#8217;ai choisi l&#8217;abonnement à 15$/mois afin de tester à moindre coût le service.</p>
<p><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/vaultpress-installation.png"><img class="aligncenter size-medium wp-image-922" title="Vaultpress Guide Usage" src="http://www.herewithme.fr/wp-content/uploads/2010/08/vaultpress-installation-287x300.png" alt="" width="287" height="300" /></a></p>
<h3>Le plugin</h3>
<p>Une fois payé, on vous propose de télécharger une extension à installer sur le blog WordPress de votre choix. Une fois, le plugin installé et activé, un menu VaulPress apparait dans le menu de la console d&#8217;administration et permet de voir l&#8217;avancement de la sauvegarde du blog sur les serveurs de VaultPress.</p>
<p><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/vaultpress-admin.png"><img class="aligncenter size-large wp-image-921" title="VaultPress Admin de WordPress" src="http://www.herewithme.fr/wp-content/uploads/2010/08/vaultpress-admin-1024x852.png" alt="" width="470" height="391" /></a></p>
<p>Le backup se fait en arrière-plan, il n&#8217;est pas nécessaire de se connecter à WordPress ou de laisser une fenêtre du navigateur pour que le transfert se fasse. Le transfert initial est assez long, tout dépendra du nombre d&#8217;articles et de commentaires, mais surtout tout dépendra de la quantité de pièces jointes.</p>
<p>Dans le cadre de WordPress Francophone, j&#8217;ai activé le plugin le soir à 21h, le lendemain tous les fichiers avaient été synchronisés.</p>
<p style="text-align: center;"><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-‹-WordPress-Francophone-—-WordPress_Dashboard.png"><img class="aligncenter size-full wp-image-915" title="WordPress Francophone VaultPress Dashboard" src="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-‹-WordPress-Francophone-—-WordPress_Dashboard.png" alt="" width="502" height="222" /></a></p>
<p>Une fois les fichiers complètement synchronisés, on peut observer un tableau de bord VaultPress qui nous affiche les informations principales, nombres d&#8217;articles, commentaires, termes, révisions, médias, etc. On peut également trouver le nombre de copies du blog. (ici 40)</p>
<h3>Le service</h3>
<p>Maintenant que nous avons passé en revue les pages du plugin sur l&#8217;admin WordPress, nous allons voir les fonctionnalités du site VaultPress.com. La page de connexion, bien que stylé VaultPress nous rappelle que WordPress n&#8217;est jamais très loin&#8230;</p>
<p style="text-align: center;"><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-Dashboard_Login.png"><img class="aligncenter size-full wp-image-919" title="VaultPress Connexion" src="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-Dashboard_Login.png" alt="" width="243" height="268" /></a></p>
<p>Pour se connecter à VaultPress, il faut posséder un compte WordPress.com, ce dernier vous sera demandé lors de l&#8217;inscription initiale, vous devez alors saisir vos identifiants WordPress.com.<br />
Une fois connecté, on tombe sur un tableau de bord qui contient tous les sites protégés par VaultPress, ici il n&#8217;y a que WordPress Francophone.</p>
<p style="text-align: center;"><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-Dashboard_Index.png"><img class="aligncenter size-full wp-image-917" title="VaultPress Dashboard Index" src="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-Dashboard_Index.png" alt="" width="421" height="143" /></a></p>
<p>Le statut affiche la dernière mise à jour de la base WordPress avec VaultPress, ici on peut voir qu&#8217;il s&#8217;agit du plugin du compteur de vues utilisées sur WordPress Francophones. Le menu propose de voir l&#8217;intégralité des backups de votre site, le log d&#8217;activité des sauvegardes ainsi qu&#8217;un formulaire de contact.</p>
<p><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-Dashboard_Backups.png"><img class="aligncenter size-medium wp-image-916" title="VaultPress Dashboard Backups" src="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-Dashboard_Backups-300x156.png" alt="" width="300" height="156" /></a><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-Dashboard_Log.png"><img class="aligncenter size-medium wp-image-918" title="VaultPress Dashboard Log" src="http://www.herewithme.fr/wp-content/uploads/2010/08/VaultPress-Dashboard_Log-300x100.png" alt="" width="300" height="100" /></a></p>
<p>La page &laquo;&nbsp;Backups&nbsp;&raquo; nous propose de compacter, d&#8217;archiver et de télécharger l&#8217;ensemble des fichiers et la base de données de WordPress pour chaque backup réalisé. Ainsi, il est possible de télécharger n&#8217;importe quel backup de votre blog, l&#8217;intérêt majeur, c&#8217;est qu&#8217;en cas de pertes de données sur votre serveur, vous pouvez récupérer les fichiers à toutes les dates, et surtout les dernières données grâce à la synchronisation en temps réel.</p>
<p>La page &laquo;&nbsp;logs&nbsp;&raquo; retrace toutes les modifications apportées sur votre installation WordPress, ajout d&#8217;un article, d&#8217;un commentaire, d&#8217;un méta via un plugin, etc. bref tout est enregistré !</p>
<h3>Conclusion</h3>
<p>La conclusion est difficile. Le service est efficace et fonctionne très bien sur un serveur mutualisé comme Infomaniak. Pour les personnes possédant un dédié, un backup automatique et incrémentiel de la base de données et des fichiers sur 2 lieux de stockage me paraissent largement suffisant&#8230;</p>
<p>Alors, je ne sais pas trop&#8230; Pour qui ?</p>
<p>Les personnes ayant de &laquo;&nbsp;gros blogs&nbsp;&raquo; sont bien souvent sur des serveurs dédiés et/ou infogérés, dans un tel cas la backup serveur me parait suffisante&#8230;<br />
Les personnes sur des hébergements mutualisés seront-elles prêtes à mettre de l&#8217;argent pour un service de backup ? Au prix proposé, on n&#8217;est pas loin d&#8217;un serveur virtualisé de base&#8230;</p>
<p>Mon avis est partagé sur l&#8217;intérêt d&#8217;un tel service&#8230; et vous ? pour qui ? quel contexte ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2010/08/16/presentation-de-vaultpress-la-securite-vue-par-automattic/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Relation Post Types : Faire des relations entre les contenus de WordPress !</title>
		<link>http://www.herewithme.fr/2010/08/16/relation-post-types-faire-des-relations-entre-les-contenus-de-wordpress/</link>
		<comments>http://www.herewithme.fr/2010/08/16/relation-post-types-faire-des-relations-entre-les-contenus-de-wordpress/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 21:24:00 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Custom Post Types]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Post Types]]></category>
		<category><![CDATA[Related]]></category>
		<category><![CDATA[Relations]]></category>
		<category><![CDATA[Taxonomies]]></category>
		<category><![CDATA[Taxonomy]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=925</guid>
		<description><![CDATA[Depuis WordPress 3.0, il est possible de créer facilement à la volée des types de contenus (en anglais : custom post types), et d&#8217;y coupler des taxonomies. On peut par exemple, créer des petites annonces, et ajouter des taxonomies comme &#8230; <a href="http://www.herewithme.fr/2010/08/16/relation-post-types-faire-des-relations-entre-les-contenus-de-wordpress/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Depuis WordPress 3.0, il est possible de créer facilement à la volée des types de contenus (en anglais : custom post types), et d&#8217;y coupler des taxonomies. On peut par exemple, créer des petites annonces, et ajouter des taxonomies comme la région, un ordre de prix, l&#8217;état du bien, etc.</p>
<p>Mais les taxonomies ne sont pas nécessairement suffisantes dans un usage pro pour monter un site avec de nombreuses relations. Parfois, on souhaite relier 2 types de contenu ensemble, par exemple sur un site contenant des petites annonces, on voudra avoir la possibilité de lier des articles d&#8217;actualités à des petites annonces. Ainsi, on pourra facilement afficher des blocs de contenus liés sur le thème.</p>
<p>Pour y parvenir, j&#8217;ai développé le plugin : <a href="http://wordpress.org/extend/plugins/relation-post-types/">Relation Post Types</a></p>
<p><div id="attachment_928" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/screen-capture.png"><img class="size-medium wp-image-928" title="Relation Post Types - Settings" src="http://www.herewithme.fr/wp-content/uploads/2010/08/screen-capture-300x178.png" alt="" width="300" height="178" /></a><p class="wp-caption-text">Relation Post Types - Réglages</p></div></p>
<p>Ce dernier offre la possibilité de choisir dans la console d&#8217;administration quelles liaisons voulez vous mettre en place. Par exemple, si vous avez des petites annonces et des articles à relier, vous pouvez choisir d&#8217;afficher un bloc &laquo;&nbsp;articles&nbsp;&raquo; sur la page d&#8217;édition des petites annonces, et inversement vous pouvez afficher le bloc &laquo;&nbsp;petites annonces&nbsp;&raquo; sur la page d&#8217;édition des articles. Ainsi, vous pouvez créer des relations dans les 2 sens.</p>
<p><div id="attachment_929" class="wp-caption aligncenter" style="width: 296px"><a href="http://www.herewithme.fr/wp-content/uploads/2010/08/screen-capture-1.png"><img class="size-full wp-image-929" title="Relation Post Types - Box Relations on write page" src="http://www.herewithme.fr/wp-content/uploads/2010/08/screen-capture-1.png" alt="" width="286" height="261" /></a><p class="wp-caption-text">Boite de sélection dans la page de rédaction</p></div></p>
<p>On peut même pousser le bouchon le plus loin et créer des relations entre contenus d&#8217;un même type de données, par exemple relier une petite annonce à d&#8217;autres petites annonces. Cela peut être utile pour générer du contenu relatif, mais manuellement.</p>
<p>Le plugin est <a href="http://wordpress.org/extend/plugins/relation-post-types/">disponible en téléchargement sur WP.org</a>, dans le référentiel de plugins. Le plugin est réservé à un public de développeur ou d&#8217;utilisateurs avertis, il n&#8217;existe pas de fonctions prêtes à l&#8217;emploi à utiliser dans le thème, il vous faudra coupler les fonctions du plugin et WP_Query.</p>
<p>N&#8217;hésitez pas à me contacter pour tout bug ou évolution allant dans le sens du plugin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2010/08/16/relation-post-types-faire-des-relations-entre-les-contenus-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Advanced Edit Cforms : Et un petit plugin pour WordPress et Cforms !</title>
		<link>http://www.herewithme.fr/2010/02/07/advanced-edit-cforms-et-un-petit-plugin-pour-wordpress-et-cforms/</link>
		<comments>http://www.herewithme.fr/2010/02/07/advanced-edit-cforms-et-un-petit-plugin-pour-wordpress-et-cforms/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 23:22:58 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=893</guid>
		<description><![CDATA[Cforms est réellement un plugin très bien pensé, avec un nombre de fonctionnalités impressionnantes, mais il possède 2 défauts à mes yeux&#8230; Le premier, c&#8217;est qu&#8217;il ne se trouve pas dans le référentiel officiel des plugins, ce qui rend handicapantes &#8230; <a href="http://www.herewithme.fr/2010/02/07/advanced-edit-cforms-et-un-petit-plugin-pour-wordpress-et-cforms/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cforms est réellement un plugin très bien pensé, avec un nombre de fonctionnalités impressionnantes, mais il possède 2 défauts à mes yeux&#8230;</p>
<p>Le premier, c&#8217;est qu&#8217;il ne se trouve pas dans le référentiel officiel des plugins, ce qui rend handicapantes les mises à jour et son installation. Son deuxième défaut, c&#8217;est les problèmes liés au déplacement d&#8217;un blog.</p>
<p>Dans de nombreux cas, on développe un blog WordPress avec une adresse de développement et lorsqu&#8217;on souhaite migrer, tout se passe bien sauf pour le plugin Cforms, pour 3 raisons :</p>
<ol>
<li>Il enregistre le chemin complet vers le plugin dans un fichier PHP</li>
<li>Il enregistre l&#8217;adresse du blog dans un fichier JavaScript</li>
<li>Il enregistre l&#8217;adresse du blog et de destination des fichiers dans une option de WordPress.</li>
</ol>
<p>L&#8217;inconvénient est que lorsqu&#8217;on change d&#8217;adresse du blog, Cforms conserve les réglages du blog où il a été installé, chose très gênante, car cela implique la modification des 2 fichiers et un bidouillage dans la base de données pour corriger le plugin.</p>
<p>Pour me simplifier la vie, j&#8217;ai développé un petit plugin qui permet l&#8217;édition depuis la console d&#8217;administration de ces différentes informations. Le plugin se présente de la façon suivant :</p>
<p style="text-align: left;"><a rel="attachment wp-att-894" href="http://www.herewithme.fr/wp-content/uploads/2010/02/screenshot-1.png"><img class="aligncenter size-full wp-image-894" title="Advanced Cforms Edit" src="http://www.herewithme.fr/wp-content/uploads/2010/02/screenshot-1.png" alt="Admin d'Advanced Cforms Edit" width="494" height="259" /></a></p>
<p>Le plugin est disponible sur le référentiel de WordPress.org et répond au doux nom de &laquo;&nbsp;<a href="http://wordpress.org/extend/plugins/advanced-edit-cforms">Advanced Edit Cforms</a>&nbsp;&raquo; (j&#8217;essaie d&#8217;être explicite !)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2010/02/07/advanced-edit-cforms-et-un-petit-plugin-pour-wordpress-et-cforms/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Publication de Simple Tags 1.7.4 pour WordPress 2.8, 2.9 !</title>
		<link>http://www.herewithme.fr/2010/01/31/publication-simple-tags-174-pour-wordpress-28-29/</link>
		<comments>http://www.herewithme.fr/2010/01/31/publication-simple-tags-174-pour-wordpress-28-29/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 20:03:57 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Simple Tags]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=876</guid>
		<description><![CDATA[Petit article pour vous annoncer la sortie de Simple Tags 1.7.4 ! Cette nouvelle version est pleinement compatible avec WordPress 2.8 et 2.9. Elle n&#8217;est pas contre plus du tout compatible avec les versions antérieures, pour 2 raisons, alléger l&#8217;extension &#8230; <a href="http://www.herewithme.fr/2010/01/31/publication-simple-tags-174-pour-wordpress-28-29/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Petit article pour vous annoncer la sortie de Simple Tags 1.7.4 !</p>
<p>Cette nouvelle version est pleinement compatible avec WordPress 2.8 et 2.9. Elle n&#8217;est pas contre plus du tout compatible avec les versions antérieures, pour 2 raisons, alléger l&#8217;extension et ne pas faire semblant d&#8217;avoir des évolutions pour les anciennes versions de WordPress alors qu&#8217;en fait le code utilisé par les anciennes versions n&#8217;était plus mis à jour !</p>
<p><a rel="attachment wp-att-877" href="http://www.herewithme.fr/wp-content/uploads/2010/01/screen-capture-1.png"><img class="aligncenter size-full wp-image-877" title="Taxonomy Simple Tags" src="http://www.herewithme.fr/wp-content/uploads/2010/01/screen-capture-1.png" alt="" width="522" height="76" /></a></p>
<p>Cette version apporte quelques nouveautés dont :</p>
<ul>
<li>Compatibilité à 100% avec l&#8217;API taxonomie de WP2.8/2.9</li>
<li>Utilisation de la nouvelle API des Widgets</li>
<li>Amélioration du code en vue d&#8217;avoir 0 notice PHP (à 99%)</li>
<li>Correction sur les méthodes de cache WordPress</li>
<li>Correction avec le bug de la fausse activation. (rien ne se passer)</li>
<li>Compatibilité à 100% avec PHP4</li>
<li><strong>Ajout d&#8217;un sélecteur de taxonomie pour l&#8217;édition de masse (permets de catégoriser massivement)</strong></li>
<li>Réaménagement de la page &laquo;&nbsp;Gestion des tags&nbsp;&raquo;</li>
<li>Nouveau script pour l&#8217;auto-complétion, utilisation de l&#8217;AJAX pour de meilleures performances</li>
<li>Correction d&#8217;un bug avec les articles très longs et la suggestion de tags de Yahoo/Tag The Net</li>
<li>Ajout de 3 connecteurs pour la suggestion : OpenCalais, Alchemy et Zemanta</li>
<li>Correction de l&#8217;importateur fourni avec l&#8217;extension</li>
<li>Externalisation du tableau d&#8217;options de l&#8217;admin pour diminuer la consommation mémoire</li>
</ul>
<p>Certains d&#8217;entre vous ont remarqué que j&#8217;avais fermé le projet Google Code, c&#8217;est assez simple. L&#8217;outil est, je trouve, très mal foutu pour le chef du projet. Les visiteurs peuvent commenter toutes les pages, et les demandes de supports et retours arrivent de partout à la fois.</p>
<p>De plus, la gestion de tickets est difficile à gérer pour une seule personne, un trac est beaucoup plus lisible à ce niveau.</p>
<p>De ce fait, j&#8217;ai déplacé le support sur une <a href="http://redmine.beapi.fr/projects/show/simple-tags">installation redmine</a> que j&#8217;utilise désormais pour publier mes extensions et mini-extensions pour WordPress.</p>
<p>Enfin, beaucoup de personnes m&#8217;ont attesté que la version 1.6.x de Simple Tags fonctionnait bien avec WordPress 2.8, et bien il se trouve que non. Elle fonctionnait à peu près, sur certaines installations déjà en place, rien d&#8217;apparent. Mais sur une installation from scratch, il y avait de nombreux problèmes, l&#8217;ajout des tags sur les pages ne fonctionnait pas par exemple, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2010/01/31/publication-simple-tags-174-pour-wordpress-28-29/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Nouvelle extension de recherche&#8230; Search API ! Le prochain moteur de recherche de WordPress ?</title>
		<link>http://www.herewithme.fr/2009/09/06/nouvelle-extension-recherche-search-api-prochain-moteur-recherche-wordpress/</link>
		<comments>http://www.herewithme.fr/2009/09/06/nouvelle-extension-recherche-search-api-prochain-moteur-recherche-wordpress/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 18:21:55 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Recherche]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=773</guid>
		<description><![CDATA[Chaque été, Google organise les &#171;&#160;Google Summer of Code&#160;&#187; ! Google sélectionne des centaines de projets open source, et permet aux responsables de cesdits projets de recruter le temps d&#8217;un été des étudiants en informatique ! Ces stages rémunérés par &#8230; <a href="http://www.herewithme.fr/2009/09/06/nouvelle-extension-recherche-search-api-prochain-moteur-recherche-wordpress/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-774" title="subscribed-link-in-a-custom-search-engine" src="http://www.herewithme.fr/wp-content/uploads/2009/09/subscribed-link-in-a-custom-search-engine-300x153.png" alt="subscribed-link-in-a-custom-search-engine" width="300" height="153" />Chaque été, Google organise les &laquo;&nbsp;Google Summer of Code&nbsp;&raquo; ! Google sélectionne des centaines de projets open source, et permet aux responsables de cesdits projets de recruter le temps d&#8217;un été des étudiants en informatique !</p>
<p>Ces stages rémunérés par Google, permettent à des projets comme WordPress de travailler sur des sujets bien précis, comme les performances, la documentation ou encore la recherche dans WordPress !</p>
<p>Ce projet est pour l&#8217;heure disponible sous forme de <a href="http://wordpress.org/extend/plugins/search/">plugin &laquo;&nbsp;Search API&nbsp;&raquo;</a> bien qu&#8217;il soit, à mon avis, très rapidement intégré dans le cœur de WordPress&#8230;</p>
<p>Le plugin est totalement modulable, il peut fonctionner avec différents algorithmes, par défaut il y a la recherche MySQL (via FullText), mais il est possible d&#8217;utiliser d&#8217;autres modules comme <a href="http://www.google.com/coop/cse/">Google Custom Search</a>, <a href="http://wordpress.org/extend/plugins/sphinx-search/">Sphynx Search</a>.</p>
<p>Le plugin permet un tri des résultats par pertinence, date ou alphabétique. Il y a également possibilité d&#8217;afficher un formulaire de recherche avancé, avec un tri possible sur les auteurs, les catégories, les mots clefs, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2009/09/06/nouvelle-extension-recherche-search-api-prochain-moteur-recherche-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Simple Tags et WordPress 2.8</title>
		<link>http://www.herewithme.fr/2009/06/16/simple-tags-et-wordpress-2-8/</link>
		<comments>http://www.herewithme.fr/2009/06/16/simple-tags-et-wordpress-2-8/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 15:05:50 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Simple Tags]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/simple-tags-et-wordpress-2-8</guid>
		<description><![CDATA[Actuellement Simple Tags n&#8217;est pas toute à fait compatible avec WordPress 2.8. Une version optimisée et compatible est en préparation&#8230; patience ;) For english users : a new version of Simple Tags for WordPress 2.8 is in preparation and will &#8230; <a href="http://www.herewithme.fr/2009/06/16/simple-tags-et-wordpress-2-8/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Actuellement Simple Tags n&#8217;est pas toute à fait compatible avec WordPress 2.8.</p>
<p>Une version optimisée et compatible est en préparation&#8230; patience ;)</p>
<p>For english users : a new version of Simple Tags for WordPress 2.8 is in preparation and will be release soon !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2009/06/16/simple-tags-et-wordpress-2-8/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>Nouvelle API de Widgets pour WordPress 2.8, et un multi widget pour l&#8217;extension WP-Polls !</title>
		<link>http://www.herewithme.fr/2009/03/18/nouvelle-api-widgets-wordpress-28-et-un-multi-widget-extension-wp-polls/</link>
		<comments>http://www.herewithme.fr/2009/03/18/nouvelle-api-widgets-wordpress-28-et-un-multi-widget-extension-wp-polls/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 07:36:26 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=702</guid>
		<description><![CDATA[Alors qu&#8217;il n&#8217;y a pas encore de changements sur l&#8217;UI des Widgets, l&#8217;API de développement des Widgets a été revue ! Il est clair que pour les développeurs d&#8217;extensions et de Widgets l&#8217;ancienne API n&#8217;était pas à la hauteur pour &#8230; <a href="http://www.herewithme.fr/2009/03/18/nouvelle-api-widgets-wordpress-28-et-un-multi-widget-extension-wp-polls/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Alors qu&#8217;il n&#8217;y a pas encore de changements sur l&#8217;UI des Widgets, l&#8217;API de développement des <a href="http://wpdevel.wordpress.com/2009/03/18/converting-default-widgets-to-the-new-wi/">Widgets a été revue</a> ! Il est clair que pour les développeurs d&#8217;extensions et de Widgets l&#8217;ancienne API n&#8217;était pas à la hauteur pour la gestion des Widgets multiples&#8230;</p>
<p>Eh oui&#8230; Entre WordPress 2.3 et WordPress 2.7, l&#8217;API des widgets n&#8217;a pas bougé d&#8217;un pouce alors que l&#8217;ergonomie et l&#8217;apparence ont complètement changé&#8230; L&#8217;une des problématiques les plus courantes était dans le cadre de thèmes avec un grand nombre de sidebars&#8230; Et oui à part 2-3 Widgets (comme le texte) qui proposaient l&#8217;ajout multiple, on était vite coincé&#8230;</p>
<p>Par exemple, dans WordPress 2.7, il est impossible de placer un widget &laquo;&nbsp;catégories&nbsp;&raquo; sur 2 sidebars en même temps&#8230; Frustrant lorsqu&#8217;on souhaite gérer des sidebars différentes selon la vue (tags, archives, catégories&#8230;) où l&#8217;on se trouve !</p>
<p>Pour remédier à cela, il fallait créer des widgets multiples, autrement dit que l&#8217;on peut ajouter plusieurs fois, la problématique étant que peu d&#8217;extensions proposées ce fonctionnement, car plus compliqué à développer.</p>
<p><strong>WP-Polls</strong></p>
<p>C&#8217;est le cas par exemple de <a href="http://wordpress.org/extend/plugins/wp-polls/">WP-Polls</a> 2.40, une extension permettant de gérer des sondages, qui par défaut ne possède qu&#8217;un seul widget. Cela peut poser problème si vous souhaitez afficher 2 sondages sur 2 sidebars différentes.</p>
<p>Pour mes <a href="http://wp-box.fr">besoins pros</a>, j&#8217;ai dû adapté cette extension afin de la rendre compatible multi widget, et ainsi pouvoir placer autant de sondages que le client souhaitait sur ces sidebars. Je mets par la même occasion à disposition le widget en téléchargement ci-dessous :</p>
<blockquote><p><a href="http://www.herewithme.fr/wp-content/uploads/2009/03/wp-polls-widget-multi.phps">WP Polls Widget Multi</a> v2.40 (à renommer en .php et placer dans le dossier &laquo;&nbsp;wp-content/plugins&nbsp;&raquo;)</p></blockquote>
<p>Et voici un petit apercu de 4 widget &laquo;&nbsp;Poll&nbsp;&raquo; en place avec encore la possibilité d&#8217;en ajouter :</p>
<p><div id="attachment_714" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.herewithme.fr/wp-content/uploads/2009/03/multi-wp-polls.png"><img class="size-medium wp-image-714" title="WP-Polls Multi Widget" src="http://www.herewithme.fr/wp-content/uploads/2009/03/multi-wp-polls-300x125.png" alt="La version multi widget de l'extension WP-Polls" width="300" height="125" /></a><p class="wp-caption-text">La version multi widget de l&#39;extension WP-Polls</p></div></p>
<p>La difficulté de WordPress 2.7, c&#8217;est que l&#8217;API pour faire du multi widget est très rudimentaire et de ce fait pas évident à manipuler pour les développeurs d&#8217;extensions non confirmés&#8230;</p>
<p><strong>Petite comparaison :</strong></p>
<ul>
<li>Mon widget multi de WP-Polls (WP 2.7) fait 240 lignes. (dispo ci-dessus)</li>
<li>Le même widget (quasiment) fait par l&#8217;auteur de <a href="http://lesterchan.net/wordpress/2009/03/17/new-wp_widget-class-in-wordpress-28/">WP-Polls avec l&#8217;API 2.8</a> ne fait plus que 75 lignes.</li>
</ul>
<p>Évidemment lorsque l&#8217;API est optimisée, c&#8217;est tout de suite plus simple et plus rapide de créer du multi widget ;)</p>
<p>Contrairement à l&#8217;ancienne API qui n&#8217;était composée que de fonctions PHP classiques, la nouvelle API va faire plaisir au puriste PHP ! Et oui pour la première fois (ou presque), nous devrons étendre une classe existante de WordPress pour ajouter nos widgets, hop petit exemple :</p>
<pre class="php">class WP_Widget_Polls extends WP_Widget {</pre>
<p>Sur ce rythme on ne pourra bientôt plus critiquer WordPress pour la qualité de son code ;) Bien entendu, tout cela reste compatible PHP4 ! (ce qui n&#8217;est pas un cadeau pour les développeurs de WP)</p>
<p>Je ne détaille pas plus ici l&#8217;utilisation de la nouvelle API des widgets, j&#8217;en reparlerai avec un cas pratique lors de la sortie de WP 2.8. Pour info, la discussion relative à la<a href="http://core.trac.wordpress.org/ticket/8441"> nouvelle API est disponible sur le trac de WP</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2009/03/18/nouvelle-api-widgets-wordpress-28-et-un-multi-widget-extension-wp-polls/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Comment insérer toutes les images de son blog dans un article, et avec pagination ! Pour henri !</title>
		<link>http://www.herewithme.fr/2008/12/27/comment-inserer-toutes-les-images-de-son-blog-dans-un-article-et-avec-pagination-pour-henri/</link>
		<comments>http://www.herewithme.fr/2008/12/27/comment-inserer-toutes-les-images-de-son-blog-dans-un-article-et-avec-pagination-pour-henri/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 19:09:21 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WP-Box]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=612</guid>
		<description><![CDATA[L&#8217;autre jour, Henri du blog 2803,  expliquait sur son blog 2 problèmes qu&#8217;il rencontrait sous WordPress. L&#8217;un d&#8217;entre eux était: Comment insérer toutes les images de son blog dans un article, mais avec de la pagination ! Sans pagination, c&#8217;est &#8230; <a href="http://www.herewithme.fr/2008/12/27/comment-inserer-toutes-les-images-de-son-blog-dans-un-article-et-avec-pagination-pour-henri/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>L&#8217;autre jour, Henri du blog<a href="http://www.2803.fr/wordpress/besoin-de-vos-lumieres-en-programmation-4531/"> 2803</a>,  expliquait sur <a href="http://www.2803.fr/wordpress/besoin-de-vos-lumieres-en-programmation-4531/">son blog</a> 2 problèmes qu&#8217;il rencontrait sous WordPress.</p>
<p>L&#8217;un d&#8217;entre eux était:</p>
<blockquote><p>Comment insérer toutes les images de son blog dans un article, mais avec de la pagination !</p></blockquote>
<p>Sans pagination, c&#8217;est très simple. Il suffit d&#8217;utiliser la fonction get_posts() pour récupérer les images.</p>
<p>D&#8217;ailleurs petite précision, pour ne récupérer que les attachements de type &laquo;&nbsp;image&nbsp;&raquo;, il faut préciser le paramètre :</p>
<blockquote><p>&#8216;post_mime_type&#8217; =&gt; &#8216;image&#8217;</p></blockquote>
<p>Pour gérer la pagination, j&#8217;ai choisi d&#8217;utiliser la pagination internet de WordPress, celle permise avec les marqueurs &laquo;&nbsp;nextpage&nbsp;&raquo;. Pour la galerie, j&#8217;utiliserai la même. Pour cela, j&#8217;ai été obligé de créer une petite extension permettant l&#8217;insertion d&#8217;un shortcode.</p>
<p>Voila le mode d&#8217;exécution :</p>
<ol>
<li>Je récupère l&#8217;article juste après la requête SQL de WordPress.</li>
<li>Je force l&#8217;application du shortcode dans le contenu de l&#8217;article récupéré.</li>
<li>Je récupère les images</li>
<li>Je fais une boucle pour imprimer les images et tous les X images, j&#8217;imprime le marqueur &laquo;&nbsp;nextpage&nbsp;&raquo;</li>
</ol>
<p>Ainsi, WordPress lors de l&#8217;affichage propose la pagination des articles. Pour cela, il ne faut pas oublier la fonction wp_list_pages() dans les fichiers single.php ou page.php (selon le cas article ou page).</p>
<p>Le shortcode permet de paramétrer, la taille des images, le nombre d&#8217;images par page et optionnellement l&#8217;ID d&#8217;un article parent. Tout cela est décortiqué dans le code de l&#8217;extension.</p>
<p>Vous pouvez retrouver cette extension depuis mon <a href="http://trac.wp-box.fr/opensource">trac de plugins open-source</a>, plus précisément dans le dossier <a href="http://trac.wp-box.fr/opensource/browser/simple-all-pictures/trunk/simple-all-pictures.php">Simple All Pictures</a>.<br />
Pour télécharger le fichier, allez en bas de la page,  et sous l&#8217;intitulé &laquo;&nbsp;Download in other formats:&nbsp;&raquo;, sélectionnez le format que vous voulez.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/12/27/comment-inserer-toutes-les-images-de-son-blog-dans-un-article-et-avec-pagination-pour-henri/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Méthode pour exclure les tags d&#8217;une catégorie pour qu&#8217;ils ne s&#8217;affichent pas dans le nuage de tags de l&#8217;extension Simple Tags</title>
		<link>http://www.herewithme.fr/2008/10/19/methode-exclure-tags-categorie-nuage-tags-extension-simple-tags/</link>
		<comments>http://www.herewithme.fr/2008/10/19/methode-exclure-tags-categorie-nuage-tags-extension-simple-tags/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 21:17:48 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Simple Tags]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=553</guid>
		<description><![CDATA[Suite à une demande que l&#8217;on m&#8217;a faite à propos de Simple Tags, je préfère partager le code au lieu de le jetter, peut être que ca aidera ;) Pour le but du code tout est dit dans le titre &#8230; <a href="http://www.herewithme.fr/2008/10/19/methode-exclure-tags-categorie-nuage-tags-extension-simple-tags/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Suite à une demande que l&#8217;on m&#8217;a faite à propos de Simple Tags, je préfère partager le code au lieu de le jetter, peut être que ca aidera ;)</p>
<p>Pour le but du code tout est dit dans le titre ou presque&#8230; le code qui va bien suit!</p>
<pre class="php">&lt;?php
// ID de la catégorie
$category_id = 3;
// On récupérer les ID des articles
$post_ids = get_objects_in_term( $category_id, 'category' );
// On récupérer les ID des tags liés à ces articles
$tag_ids = wp_get_object_terms( (array) $post_ids, 'post_tag', array('fields' =&gt; 'ids') );
// On passe le tableau des tags dans une chaine de caractère séparé de ","
$tag_param = '';
if ( ! empty($tag_ids) ) {
$tag_param = 'exclude=' . implode(',', (array) $tag_ids );
}
// On utilise Simple Tags - Nuage de tags
st_tag_cloud('number=100&amp;'.$tag_param);
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/10/19/methode-exclure-tags-categorie-nuage-tags-extension-simple-tags/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress Mu, ma todo liste&#8230;</title>
		<link>http://www.herewithme.fr/2008/08/25/wordpress-mu-ma-todo-liste/</link>
		<comments>http://www.herewithme.fr/2008/08/25/wordpress-mu-ma-todo-liste/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 19:45:30 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[mu-plugins]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress Mu]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=403</guid>
		<description><![CDATA[Pour les personnes qui suivent le développement de WordPress Mu, vous devez régulièrement voir un mec nommé &#171;&#160;momo360modena&#160;&#187; proposant des patchs à tour de bras, et maniant l&#8217;anglais comme un enfant de 8 ans. Ce mec, c&#8217;est moi&#8230; Pour l&#8217;anecdote &#8230; <a href="http://www.herewithme.fr/2008/08/25/wordpress-mu-ma-todo-liste/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.herewithme.fr/wp-content/uploads/2008/08/wp-mu-logo.jpg"><img class="alignright size-full wp-image-405" title="wp-mu-logo" src="http://www.herewithme.fr/wp-content/uploads/2008/08/wp-mu-logo.jpg" alt="" width="148" height="148" /></a>Pour les personnes qui suivent le développement de WordPress Mu, vous devez régulièrement voir un mec nommé &laquo;&nbsp;momo360modena&nbsp;&raquo; proposant des patchs à tour de bras, et maniant l&#8217;anglais comme un enfant de 8 ans.</p>
<p>Ce mec, c&#8217;est moi&#8230; Pour l&#8217;anecdote momo360modena, c&#8217;est le pseudonyme de mes jeunes années&#8230;</p>
<p>J&#8217;ai donc proposé il y a très peu de temps un <a href="http://trac.mu.wordpress.org/ticket/719">énorme ticket</a> pour passer les fonctions Mu sous les nouvelles fonctions de la classe WPDB, pour des raisons de lisibilités et de performances. Le patch contient également la proposition de déplacer tous les hooks par défaut de WordPress Mu dans un fichier, comme le fait WordPress.</p>
<p>J&#8217;espère que tout le patch sera retenu&#8230; ça m&#8217;a pris deux bonnes heures cette histoire&#8230;</p>
<p>Passons maintenant à la suite de ma todo:</p>
<ul>
<li><strong>Manage Sites</strong> : La possibilité de gérer les sites sous WordPress Mu</li>
<li><strong>Clean DB</strong> : Effacer la table inutile, et rétaper wp_sitecategories</li>
<li><strong>Manage Global Terms</strong> : Permettre l&#8217;édition, même basique de la table des globals terms.</li>
<li><strong>Hardcoded $table_prefix</strong> : Permettre l&#8217;utilisation d&#8217;autre chose que wp_ comme préfixe de table (inutile mais c&#8217;est pour la beauté du geste)</li>
<li><strong>Localize Installer</strong> : Avoir un installeur localisé :) pour me faciliter la vie lors des mises à jour !</li>
<li><strong>Split mu-functions</strong> : Séparer les fonctions mu-functions par thématiques&#8230;</li>
<li><strong>Localize Users</strong> : Offrir la possibilité à chaque utilisateur de lancer la traduction de son choix. Actuellement ce choix est fait au niveau de l&#8217;admin.</li>
<li><strong>Mu Plugins</strong> : Reproduire la page des plugins pour les mu-plugins&#8230;</li>
</ul>
<p>Conclusion derrière ces noms de codes, rien d&#8217;extraordinaire&#8230; juste les fonctionnalités qui manquent à mon gout à WordPress Mu.</p>
<p>Avant de me lancer dans le développement de ces patchs, je vais probablement discuter avec Donncha, pour voir de son côté si tout ça peut être intégré&#8230; En fait la grande difficulté d&#8217;un projet comme WordPress Mu, c&#8217;est de délimiter les fonctionnalités qui doivent être inclus dans le core et celles qui doivent rester en tant que mu-plugins&#8230;</p>
<p>Si de votre coté, vous avez des idées de fonctionnalités manquantes, je suis preneur ;) (le premier qui me répond le <a href="http://wordpress.org/extend/plugins/wordpress-mu-domain-mapping">domaine mapping</a>, je l&#8217;envoi chiez, ca existe déjà en mu-plugins&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/08/25/wordpress-mu-ma-todo-liste/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WordPress Mu : Astuce pour ne pas proposer la page inscription aux visiteurs</title>
		<link>http://www.herewithme.fr/2008/06/01/wpmu-astuce-pas-proposer-page-inscription-visiteurs/</link>
		<comments>http://www.herewithme.fr/2008/06/01/wpmu-astuce-pas-proposer-page-inscription-visiteurs/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 21:18:01 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Mu]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/wordpress-mu-astuce-pour-ne-pas-proposer-la-page-inscription-aux-visiteurs</guid>
		<description><![CDATA[WordPress Mu est principalement utilis&#233; de 2 fa&#231;ons: Comme plateforme de blog public (ex: Unblog.fr) Comme plateforme pour les r&#233;seaux de blogs de gros bloggeurs ou collectifs. Dans le cas num&#233;ro 2, bien qu&#8217;il soit possible de d&#233;sactiver les inscriptions &#8230; <a href="http://www.herewithme.fr/2008/06/01/wpmu-astuce-pas-proposer-page-inscription-visiteurs/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>WordPress Mu est principalement utilis&#233; de 2 fa&#231;ons:</p>
<ol>
<li>Comme plateforme de blog public (ex: Unblog.fr) </li>
<li>Comme plateforme pour les r&#233;seaux de blogs de gros bloggeurs ou collectifs. </li>
</ol>
<p>Dans le cas num&#233;ro 2, bien qu&#8217;il soit possible de d&#233;sactiver les inscriptions publiques, vos visiteurs pourront toujours tomber sur la page d&#8217;inscription. Typiquement lors d&#8217;une erreur dans l&#8217;URL !</p>
<p>Le visiteur aura alors droit &#224; une superbe page d&#8217;inscription aussi inutile que moche.</p>
</p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="168" alt="ScreenShot017" src="http://www.herewithme.fr/wp-content/uploads/2008/06/screenshot017.png" width="462" border="0" /> </p>
<p>Pour &#233;viter cette page, il y a 2 alternatives:</p>
<ol>
<li>Hacker le code de WordPress MU </li>
<li>Cr&#233;er une petite extension pour WPmu afin de rediriger automatiquement l&#8217;utilisateur. </li>
</ol>
<p>Je vais bien &#233;videmment utiliser la m&#233;thode 2 qui a l&#8217;avantage de simplifier les mises &#224; jour. </p>
<p>Pour cela, nous allons cr&#233;er un petit fichier <i>mu-redirect.php</i> dans le dossier <i>wp-content/mu-plugins/</i></p>
<p>Et nous allons y placer le code suivant:</p>
</p>
<pre lang="php">&lt;?php
add_action('signup_header', 'redirect_home');
function redirect_home() {
	global $current_site;
	wp_redirect( &quot;http://{$current_site-&gt;domain}{$current_site-&gt;path}&quot; );
	exit();
}
?&gt;</pre>
<p>Tr&#232;s simplement cette fonction va rediriger le visiteur vers la page d&#8217;accueil de votre plateforme. Vous pouvez &#233;galement diriger vos visiteurs sur une adresse ou page sp&#233;cifique&#8230; selon vos besoins !</p>
<p>Le code de cette extension est &#233;galement disponible sous <a href="http://pastebin.com/f19086364">pastebin</a>.</p>
<p>Bon blogging !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/06/01/wpmu-astuce-pas-proposer-page-inscription-visiteurs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordCamp: D&#233;sactiver le filtrage KSES sur votre blog WordPress</title>
		<link>http://www.herewithme.fr/2008/05/03/wordcamp-desactiver-le-filtrage-kses-sur-votre-blog-wordpress/</link>
		<comments>http://www.herewithme.fr/2008/05/03/wordcamp-desactiver-le-filtrage-kses-sur-votre-blog-wordpress/#comments</comments>
		<pubDate>Sat, 03 May 2008 17:33:46 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Amaury]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WP-Box]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/wordcamp-dsactiver-le-filtrage-kses-sur-votre-blog-wordpress</guid>
		<description><![CDATA[En live depuis la session "atelier pratique des extensions" je vous donne le code du plugin pour désactiver les filtrages KSES lors de la rédaction des articles. J'ai mis le plugin sur le service de code pastbin. A noter que &#8230; <a href="http://www.herewithme.fr/2008/05/03/wordcamp-desactiver-le-filtrage-kses-sur-votre-blog-wordpress/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En live depuis la session "atelier pratique des extensions" je vous donne le code du plugin pour désactiver les filtrages KSES lors de la rédaction des articles.</p> <p>J'ai mis le plugin sur le <a href="http://pastebin.com/d6b4e780e">service de code pastbin</a>.</p> <pre lang="php">
<?php
/*
Plugin Name: Disable Kses
Plugin URI: http://wp-box.fr
Description: Remove Kses Filter
Version: 1.0
Author: Amaury BALMER
Author URI: http://www.herewithme.fr
*/
function disable_kses_content() {
	// Normal filtering.
	remove_filter('title_save_pre', 'wp_filter_kses');
	// Post filtering
	remove_filter('content_save_pre', 'wp_filter_post_kses');
	remove_filter('excerpt_save_pre', 'wp_filter_post_kses');
	remove_filter('content_filtered_save_pre', 'wp_filter_post_kses');
}
add_action('init', 'disable_kses_content', 20);
?>
</pre>
<p>A noter que cette méthode est radicale ! Elle s'applique pour tous les utilisateurs. (Sauf les commentaires) Vous pouvez également personnaliser le filtre de Kses avec le plugin <a href="http://wordpress.org/extend/plugins/html-purified/#post-2207">HTML Purified</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/05/03/wordcamp-desactiver-le-filtrage-kses-sur-votre-blog-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Faire des requ&#234;tes s&#233;curis&#233;es sous WordPress 2.5 ! Utilisation de la m&#233;thode $wpdb-&gt;prepare !</title>
		<link>http://www.herewithme.fr/2008/03/16/requetes-securises-wordpress-25-methode-wpdb-prepare/</link>
		<comments>http://www.herewithme.fr/2008/03/16/requetes-securises-wordpress-25-methode-wpdb-prepare/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 21:19:52 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/?p=318</guid>
		<description><![CDATA[Parlons un peu s&#233;curit&#233; ! WordPress, comme tout logiciel informatique, est de plus en plus soumis a des attaques diverses et vari&#233;es... Pour contrer ce genre de d&#233;sagr&#233;ment, WP utilise plusieurs m&#233;canismes: Gestion des droits Un nouvel algorithme de cryptage &#8230; <a href="http://www.herewithme.fr/2008/03/16/requetes-securises-wordpress-25-methode-wpdb-prepare/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 0px 5px 10px; border-right-width: 0px" height="164" alt="959811_88673421" src="http://www.herewithme.fr/wp-content/uploads/2008/03/959811-88673421.jpg" width="124" align="right" border="0" /> Parlons un peu s&#233;curit&#233; !</p>  <p>WordPress, comme tout logiciel informatique, est de plus en plus soumis a des attaques diverses et vari&#233;es... Pour contrer ce genre de d&#233;sagr&#233;ment, WP utilise plusieurs m&#233;canismes:</p>  <ul>   <li>Gestion des droits </li>    <li>Un nouvel algorithme de cryptage des mots de passe pour WordPress 2.5 </li>    <li>La gestion de &quot;nonce&quot; permettant de v&#233;rifier la provenance lors d'une action dans l'administration. </li> </ul>  <p>La grande nouveaut&#233; de cette version 2.5, c'est l'ajout d'une m&#233;thode permettant de prot&#233;ger rapidement et efficacement les requ&#234;tes SQL d'une technique tr&#232;s remploy&#233;es, j'ai nomm&#233; les <a href="http://fr.wikipedia.org/wiki/Injection_SQL">injections SQL</a>.</p>  <p>Avant WordPress 2.5, c'&#233;tait un peu l'anarchie. En effet, chaque plugin dispose de son propre m&#233;canisme de protection, plus ou moins efficace et plus ou moins test&#233;...</p>  <p>Afin de remettre les choses a plats, les d&#233;veloppeurs ont ajout&#233; la m&#233;thode &quot;<code>prepare</code>&quot; &#224; la classe d'acc&#232;s a la base de donn&#233;es &quot;<code>wpdb&quot;.</code></p>  <p>Cette m&#233;thode bouscule les habitudes sur plusieurs aspects, pour bien comprendre le fonctionnement, je vais d&#233;cortiquer une requ&#234;te SQL de WordPress avec l'ancienne et la nouvelle m&#233;thode !</p>  <h4>Ancienne m&#233;thode</h4>  <p>Dans cet exemple, je vais prendre la requ&#234;te SQL utilise lors de l'insertion d'un article dans la base de donnes. Cette requ&#234;te permet de v&#233;rifier que l'identifiant de l'article (ou slug) est bien unique, le cas &#233;ch&#233;ant WP rajoutera un suffixe mais peu importe... Le sens de la requ&#234;te n'a aucun int&#233;r&#234;t dans cette d&#233;monstration !</p>  <p>Voici la requ&#234;te:</p>  <pre lang="php">$post_name_check = $wpdb-&gt;get_var(&quot;SELECT post_name FROM $wpdb-&gt;posts WHERE post_name = '$post_name' AND post_type = '$post_type' AND ID != '$post_ID' AND post_parent = '$post_parent' LIMIT 1&quot;);</pre>
<p><strong>Note:</strong> vous pouvez trouver la requ&#234;te dans le fichier &quot;wp-includes/post.php&quot;, &#224; la ligne 701.</p>
<p>Comme vous pouvez le constater, la requ&#234;te fait appel &#224; 4 variables dynamiques:</p>
<ul>
  <li>$post_name </li>
  <li>$post_type </li>
  <li>$post_ID </li>
  <li>$post_parent </li>
</ul>
<p>Ces variables sont des sources potentielles d'injections SQL... Pour &#234;tre s&#251;r de leur contenu, il est imp&#233;ratif de les s&#233;curiser une par une... Cela implique plus de code... et surtout un code r&#233;p&#233;titif &#224; souhait qui perd en lisibilit&#233; !</p>
<h4>La nouvelle m&#233;thode !</h4>
<p>Voici la m&#234;me requ&#234;te sous WP 2.5:</p>
<pre lang="php">$post_name_check = $wpdb-&gt;get_var($wpdb-&gt;prepare(&quot;SELECT post_name FROM $wpdb-&gt;posts WHERE post_name = %s AND post_type = %s AND ID != %d AND post_parent = %d LIMIT 1&quot;, $post_name, $post_type, $post_ID, $post_parent));</pre>
<p><strong>Note:</strong> vous pouvez trouver la requ&#234;te dans le fichier &quot;wp-includes/post.php&quot;, &#224; la ligne 1267.</p>
<p><strong>Que remarquons-nous ?</strong></p>
<ol>
  <li>Avant d'effectuer la requ&#234;te SQL (m&#233;thode &quot;get_var&quot;), nous utilisons la m&#233;thode &quot;prepare&quot; </li>
  <li>Nous n'avons plus de variables directement dans la requ&#234;te SQL </li>
  <li>La m&#233;thode &quot;prepare&quot; fonctionne de la m&#234;me fa&#231;on que les fonctions PHP &quot;sprintf&quot; ou &quot;printf&quot; (<a href="http://fr.php.net/manual/fr/function.sprintf.php">cha&#238;nes format&#233;es</a>) </li>
  <li>Le nombre de param&#232;tre de la m&#233;thode &quot;prepare&quot; est infini. </li>
  <li>Le code de la requ&#234;te SQL est plus lisible </li>
</ol>
<p><strong>Comment &#231;a marche ?</strong></p>
<p>Dans le code de la requ&#234;te SQL, &#224; la place des variables PHP, nous pla&#231;ons des marqueurs. Ces marqueurs d&#233;butent toujours par un pourcentage.</p>
<ul>
  <li>%s pour une cha&#238;ne de caract&#232;re </li>
  <li>%d pour un nombre entier </li>
  <li>La suite des marqueurs sur <a href="http://fr.php.net/manual/fr/function.sprintf.php">php.net</a>. </li>
</ul>
<p><em>A ce moment de l'article, pour ceux qui ont tout compris, vous vous dites: &quot;Quelles diff&#233;rences avec l'ancienne m&#233;thode, les marqueurs ont les m&#234;mes inconv&#233;nients que les variables PHP...&quot; et &quot;Pourquoi faire une m&#233;thode prepare alors qu'il existe d&#233;j&#224; la fonction PHP sprintf...&quot;</em></p>
<p>C'est pr&#233;cis&#233;ment ici que la m&#233;thode agit... Contrairement &#224; la fonction sprintf, qui ne fait que remplacer b&#234;tement les variables.</p>
<p>La m&#233;thode &quot;prepare&quot; passe par une &#233;tape interm&#233;diaire, la s&#233;curisation des variables:</p>
<ol>
  <li>Suppression des quotes simples et doubles de la requ&#234;te </li>
  <li>Ajout des guillemets entre les variables PHP pour respecter la syntaxe SQL </li>
  <li>Utilisation de la m&#233;thode &quot;escape&quot; pour prot&#233;ger les variables des injections SQL </li>
</ol>
<h4>Conclusion </h4>
<p>Vous l'aurez bien compris... L'int&#233;r&#234;t majeur de cette fonction est de <strong>gagner du temps lors de la cr&#233;ation des requ&#234;tes SQL ! (tout en les s&#233;curisant)</strong></p>
<p>Gr&#226;ce &#224; son fonctionnement &quot;&#224; la printf&quot;, le code de vos extensions gagnera en lisibilit&#233;, en l&#233;g&#232;ret&#233;, et la s&#233;curit&#233; sera assur&#233;e...</p>
<p>Il ne reste plus qu'&#224; attendre les nouvelles versions de vos extensions pr&#233;f&#233;r&#233;es pour WordPress 2.5 !</p>
<p>(Extensions = Plugins, pr&#233;parez vous mentalement... C'est la nouvelle traduction fran&#231;aise dans WordPress 2.5)</p>]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/03/16/requetes-securises-wordpress-25-methode-wpdb-prepare/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Les nouveaut&#233;s d&#233;veloppeurs de WordPress 2.5 !</title>
		<link>http://www.herewithme.fr/2008/03/16/les-nouveauts-dveloppeurs-de-wordpress-25/</link>
		<comments>http://www.herewithme.fr/2008/03/16/les-nouveauts-dveloppeurs-de-wordpress-25/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 19:49:20 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Windows Live Writer]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/les-nouveauts-dveloppeurs-de-wordpress-25</guid>
		<description><![CDATA[Quoi de neuf dans WordPress 2.5 pour les d&#233;veloppeurs ? Pas mal de petites choses&#8230; pr&#233;sentation ! TinyMCE passe en version 3.x Cette nouvelle version de l&#8217;&#233;diteur visuel apporte plusieurs choses Compatibilit&#233; &#224; 100% avec Safari 3 C&#339;ur de l&#8217;&#233;diteur &#8230; <a href="http://www.herewithme.fr/2008/03/16/les-nouveauts-dveloppeurs-de-wordpress-25/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Quoi de neuf dans WordPress 2.5 pour les d&#233;veloppeurs ? Pas mal de petites choses&#8230; pr&#233;sentation !</p>
<h4>TinyMCE passe en version 3.x</h4>
<p>Cette nouvelle version de l&#8217;&#233;diteur visuel apporte plusieurs choses</p>
<ul>
<li>Compatibilit&#233; &#224; 100% avec Safari 3 </li>
<li>C&#339;ur de l&#8217;&#233;diteur compl&#232;tement r&#233;&#233;crit, optimis&#233; et plus l&#233;ger </li>
<li>API revu et corrig&#233;, beaucoup plus flexible pour les plugins </li>
<li>Le code produit est beaucoup plus s&#233;mantique et respecte les standards web du W3C. </li>
</ul>
<p>Elle corrige &#233;galement un grand nombre de bugs. Le site de l&#8217;&#233;diteur : <a href="http://tinymce.moxiecode.com/index.php">Moxiecode Systems AB</a> pour davantage d&#8217;informations.</p>
<h4>jQuery passe en version 1.2.x et se g&#233;n&#233;ralise</h4>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 0px 5px 10px; border-right-width: 0px" height="132" alt="jQuery-logo" src="http://www.herewithme.fr/wp-content/uploads/2008/03/jquery-logo.gif" width="132" align="right" border="0" /> Depuis la version 2.1, l&#8217;&#233;quipe de WordPress migre progressivement tous les JavaScripts de WordPress sous la librairie jQuery. Cette derni&#232;re passe par la m&#234;me occasion &#224; la version 1.2.x (plus performante et plus l&#233;g&#232;re).</p>
<p>jQuery est d&#233;sormais utilis&#233; pour:</p>
<ul>
<li>Les alertes de manipulation dans les listes d&#8217;articles, de pages. </li>
<li>Les alertes WordPress avec d&#233;grad&#233;s </li>
<li>Enfin jQuery remplace Prototype dans la page de r&#233;daction (page plus rapide !) </li>
</ul>
<p>Les librairies Prototype et script.aculo.us sont &#233;galement mise &#224; jour, respectivement aux versions 1.6.0 et 1.8.0.</p>
<p>Cela permettra probablement &#224; la console d&#8217;administration d&#8217;&#234;tre un peu plus l&#233;g&#232;re pour les navigateurs web !</p>
<h4>L&#8217;API XML-RPC &#233;volue&#8230;</h4>
<p>Quelques nouveaut&#233;s&#8230; et des corrections !<img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 35px 20px 25px 0px; border-right-width: 0px" height="75" alt="atom-logo75px" src="http://www.herewithme.fr/wp-content/uploads/2008/03/atom-logo75px.gif" width="75" align="left" border="0" /></p>
<ul>
<li>Ajout d&#8217;une m&#233;thode pour la suppression des cat&#233;gories, r&#233;cup&#233;ration du nombre de commentaires </li>
<li>Support des champs personnalis&#233;s </li>
<li>L&#8217;API AtomPub peut d&#233;sormais &#234;tre d&#233;couvrable automatiquement via les clients tels que Windows Live Writer, etc. </li>
<li>Support des diff&#233;rents statuts de publication des articles </li>
<li>L&#8217;API est extensible gr&#226;ce aux filtres et actions des plugins WordPress </li>
<li>Les articles programm&#233;s dans le futur avec Windows Live Writer fonctionnent correctement </li>
<li>Etc. </li>
</ul>
<p>Vous trouverez le <a href="http://trac.wordpress.org/query?status=closed&amp;component=XML-RPC&amp;milestone=2.5&amp;order=priority">d&#233;tail des modifications</a> sur le trac de WordPress.</p>
<h4>Une nouvelle m&#233;thode pour s&#233;curiser les requ&#234;tes SQL $wpdb-&gt;prepare !</h4>
<p>Et pour en savoir plus&#8230; il faudra lire le prochain article enti&#232;rement consacr&#233; &#224; cette nouvelle m&#233;thode :)</p>
<p><strong>Edit:</strong> Lire <a href="http://www.herewithme.fr/requetes-securises-wordpress-25-methode-wpdb-prepare">Faire des requ&#234;tes s&#233;curis&#233;es sous WordPress 2.5 ! Utilisation de la m&#233;thode $wpdb-&gt;prepare !</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/03/16/les-nouveauts-dveloppeurs-de-wordpress-25/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>b2evolution et nginx : Comment r&#233;soudre le probl&#232;me de redirection lors de la connexion &#224; l&#8217;administration !</title>
		<link>http://www.herewithme.fr/2008/03/16/b2evolution-nginx-comment-probleme-redirection-connexion-administration-boucle/</link>
		<comments>http://www.herewithme.fr/2008/03/16/b2evolution-nginx-comment-probleme-redirection-connexion-administration-boucle/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 15:45:25 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Serveur]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/b2evolution-et-nginx-comment-rsoudre-le-problme-de-redirection-lors-de-la-connexion-a-ladministration</guid>
		<description><![CDATA[Lorsqu'on utilise le logiciel de blog b2evolution, et le serveur HTTP Nginx, il se passe un petit bug lors de la connexion &#224; l'administration. En effet, une fois le login pass&#233;, le logiciel part dans une boucle infinie ! Et &#8230; <a href="http://www.herewithme.fr/2008/03/16/b2evolution-nginx-comment-probleme-redirection-connexion-administration-boucle/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://b2evolution.net"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 0px 5px 10px; border-right-width: 0px" height="90" alt="b2evo-logo-t" src="http://www.herewithme.fr/wp-content/uploads/2008/03/b2evo-logo-t.gif" width="233" align="right" border="0" /></a> Lorsqu'on utilise le logiciel de blog b2evolution, et le serveur HTTP Nginx, il se passe un petit bug lors de la connexion &#224; l'administration.</p>
<p>En effet, une fois le login pass&#233;, le logiciel part dans une boucle infinie ! Et l'admin est inaccessible... Pas terrible pour blogger...</p>
<p>Pour r&#233;soudre ce petit bug, nous allons &#233;diter le fichier admin.php se situant &#224; la racine de b2evolution.</p>
<p>Et &#224; la ligne 22, nous allons remplacer</p>
<pre lang="php">if( ! empty( $_SERVER['PATH_INFO'] ) &#038;& $_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF'] ) // the &quot;!= PHP_SELF&quot; check seems needed by IIS..</pre>
<p>Par</p>
<pre lang="php">if( ! empty( $_SERVER['PATH_INFO'] ) &#038;& $_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF'] &#038;& 1 == 0 ) // the &quot;!= PHP_SELF&quot; check seems needed by IIS..</pre>
<p>Avec cette petite modification, la condition n'est jamais remplie, l'administration fonctionne mais les anciennes url du type &quot;/admin/plugins.php&quot; ne seront plus rediriger vers &quot;/admin.php&quot;.</p>
<p>Pour note, la variable PATH_INFO est diff&#233;rente de PHP_SELF, raison pour laquelle la condition est remplie et cela fait tout foirer :)</p>
<p>Mon diagnostic s'arr&#234;te la... faute de temps !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/03/16/b2evolution-nginx-comment-probleme-redirection-connexion-administration-boucle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress, Memcached et PECL Memcache : La solution pour les blogs a gros trafic !</title>
		<link>http://www.herewithme.fr/2008/03/07/wordpress-memcached-et-pecl-memcache-la-solution-pour-les-blogs-a-gros-trafic/</link>
		<comments>http://www.herewithme.fr/2008/03/07/wordpress-memcached-et-pecl-memcache-la-solution-pour-les-blogs-a-gros-trafic/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 21:30:21 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Serveur]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/wordpress-memcached-et-pecl-memcache-la-solution-pour-les-blogs-a-gros-trafic</guid>
		<description><![CDATA[Votre blog WordPress rame sur votre gros serveur d&#233;di&#233;? Voici quelques &#233;l&#233;ments de r&#233;ponses&#8230; En effet, j&#8217;ai eu l&#8217;occasion de tester diff&#233;rents caches (et &#34;optimiseur&#34;) OPCode avec une grosse installation de WordPress : APC (plugin WordPress) eAccelerator (plugin WordPress) XCache &#8230; <a href="http://www.herewithme.fr/2008/03/07/wordpress-memcached-et-pecl-memcache-la-solution-pour-les-blogs-a-gros-trafic/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Votre blog WordPress rame sur votre gros serveur d&#233;di&#233;? Voici quelques &#233;l&#233;ments de r&#233;ponses&#8230;</p>
<p>En effet, j&#8217;ai eu l&#8217;occasion de tester diff&#233;rents caches (et &quot;optimiseur&quot;) OPCode avec une grosse installation de WordPress :</p>
</p>
<ul>
<li><a href="http://fr.php.net/apc">APC</a> (<a href="http://txfx.net/files/wordpress/apc-object-cache.phps">plugin WordPress</a>) </li>
<li><a href="http://eaccelerator.net/">eAccelerator</a> (<a href="http://neosmart.net/dl.php?id=13">plugin WordPress</a>) </li>
<li><a href="http://xcache.lighttpd.net/">XCache</a> (<a href="http://neosmart.net/dl.php?id=12">plugin WordPress</a>) </li>
<li><a href="http://www.danga.com/memcached/">Memcached</a> (<strike>plugin WordPress</strike>) </li>
</ul>
<p><strong>Note:</strong> Les plugins permettent &#224; WordPress d&#8217;utiliser les caches des utilitaires en lieu et place du syst&#232;me de fichiers (bien plus lent)</p>
<p>Alors, non il n&#8217;y aura aucun bench &#224; l&#8217;appui de mon discours, juste un retour d&#8217;exp&#233;rience&#8230;</p>
<p>APC, XCache et eAccelerator poss&#232;dent tous les 3 un point commun. Ceux sont des extensions pour PHP. De ce fait, leur installation est tr&#232;s simple, une ligne en plus dans le fichier php.ini et tout fonctionne ! (ou presque)</p>
<p>A contrario, Memcached n&#8217;est pas sp&#233;cifique &#224; PHP, il peut &#234;tre utilis&#233; par n&#8217;importe quel type de langages&#8230; C&#8217;est une technologie de cache g&#233;n&#233;rique. De ce fait, il est n&#233;cessaire d&#8217;installer un service sur votre serveur, et une extension &#224; PHP. Autre diff&#233;rence, Memcached n&#8217;optimise pas le traitement PHP, il ne fait que de la mise en cache.</p>
<h3>Revenons &#224; des choses plus g&#233;n&#233;rales&#8230;</h3>
<p>A quoi sert &#224; ces outils ? A r&#233;duire la charge serveur non ?</p>
<p>Donc pour r&#233;duire la charge serveur, il faut optimiser l&#8217;ex&#233;cution de PHP pour que ce dernier passe moins de temps sur chaque traitement.</p>
<p>Chose que font a merveille APC, eAccelerator et Xcache avec leur optimisation et cache interne.</p>
<p>Cool ? Non pas vraiment&#8230;</p>
<p>Ces outils ont tendance &#224; &#234;tre plus gourmand en consommation processeur, du coup, le traitement est optimise, plus court probablement, mais la consommation CPU de votre serveur augmente&#8230; Donc votre serveur est plus lent&#8230;</p>
<p>L&#8217;effet recherch&#233; n&#8217;est pas la&#8230;</p>
<h3>Que faire alors ?</h3>
</p>
<p>Que faire alors ?</p>
<p>Et bah contrairement &#224; nos 3 gugusses, Memcached ne g&#232;re que la mise en cache, et il le fait tr&#232;s bien, et il le fait surtout de mani&#232;re &#233;conomique pour le processeur&#8230; Du coup, l&#8217;utilisation de Memcached est bien plus efficace.</p>
<p>Alors maintenant, la charge du serveur a baiss&#233;e&#8230; mais les pages mettent toujours 2 secondes pour s&#8217;afficher, vu que le code PHP de WordPress n&#8217;est pas optimis&#233;&#8230;</p>
<p>Un casse t&#234;te ? Pas vraiment&#8230;</p>
<p>eAccelerator et Memcached fonctionne tr&#232;s bien &#224; 2&#8230;</p>
<ul>
<li>eAccelerator optimise le code PHP </li>
<li>Memcached met en cache les r&#233;sultats et diverses variables PHP</li>
</ul>
<p>Et voila le duo gagnant, vos page sont rapides, et la charge de votre serveur est correcte&#8230;</p>
<p>Quelques chiffres&#8230; sur une journ&#233;e (24h):</p>
<ul>
<li>eAccelerator seul :&#160; 0.8 (consommation CPU moyenne) </li>
<li>Memcached seul : 0.6 </li>
<li>eAccelerator + Memcached&#160; : 0.4 </li>
</ul>
<p>Le choix coule de source&#8230;</p>
</p>
<h3>Maintenant quelques ressources</h3>
<p>Un tutorial pour installer une version r&#233;cente <a href="http://www.lullabot.com/articles/how_install_memcache_debian_etch">de Memcached sur une Debian Etch</a> </p>
<p>Il existe un <a href="http://dev.wp-plugins.org/browser/memcached/trunk">plugin</a> WordPress pour memcache, mais ce dernier utilise une classe d&#8217;&#233;mulation &#224; la place de l&#8217;extension PHP. Cela va s&#8217;en dire que les performances sont moindres&#8230; vu que le code PHP est plus lent que l&#8217;extension en C&#8230;</p>
<p>Je mets donc &#224; disposition une <a href="http://www.herewithme.fr/important/object-cache.phps">classe de cache exploitant l&#8217;extension PECL:Memcache et Memcached</a> pour WordPress !</p>
<p>Cette classe est th&#233;oriquement compatible avec WPmu, mais je n&#8217;ai pas encore test&#233;.</p>
<p>Ryan, un des d&#233;veloppeurs de WP, donne quelques infos sur sa <a href="http://ryan.wordpress.com/2005/12/23/memcached-backend/">version de memcache.</a></p>
<p>Et contrairement &#224; lui, la m&#233;thodologie pour ajouter vos serveurs Memcached &#224; mon plugin est la suivante:</p>
<blockquote><p>$memcached_servers[] = array( &#8216;host&#8217; =&gt; &#8217;127.0.0.1&#8242;, &#8216;port&#8217; =&gt; 11211, &#8216;persistant&#8217; =&gt; true );</p>
</blockquote>
<p>C&#8217;est un point que je n&#8217;aborde pas, mais Memcached peut &#234;tre r&#233;pandu sur des clusters de serveurs&#8230; c&#8217;est la m&#233;thode WordPress.com !</p>
<h3>Dernier point</h3>
<p>Je base cet article sur mon exp&#233;rience de diff&#233;rents serveurs, 3 diff&#233;rents. Le raisonnement est v&#233;rifi&#233; sur ces 3 serveurs.</p>
<p>Si vous avez d&#8217;autres techniques&#8230; je suis preneur :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/03/07/wordpress-memcached-et-pecl-memcache-la-solution-pour-les-blogs-a-gros-trafic/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Sortie de Simple Tags 1.3.1 !</title>
		<link>http://www.herewithme.fr/2008/01/28/sortie-de-simple-tags-131-2/</link>
		<comments>http://www.herewithme.fr/2008/01/28/sortie-de-simple-tags-131-2/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 08:49:45 +0000</pubDate>
		<dc:creator>Amaury</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tagging]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://www.herewithme.fr/sortie-de-simple-tags-131-2</guid>
		<description><![CDATA[Suite &#224; la sortie de Simple Tags 1.3, j&#8217;ai eu quelques (voir pas mal) de retour plus ou moins n&#233;gatifs, de bugs et divers probl&#232;mes. Contrairement &#224; d&#8217;autres plugins, All In One SEO Pack pour ne pas le citer, j&#8217;ai &#8230; <a href="http://www.herewithme.fr/2008/01/28/sortie-de-simple-tags-131-2/">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Suite &#224; la sortie de Simple Tags 1.3, j&#8217;ai eu quelques (voir pas mal) de retour plus ou moins n&#233;gatifs, de bugs et divers probl&#232;mes.</p>
<p>Contrairement &#224; d&#8217;autres plugins, All In One SEO Pack pour ne pas le citer, j&#8217;ai regroup&#233; toutes les corrections sur une seule mise &#224; jour dans le but de vous &#233;viter 30 mises &#224; jour en 2 semaines ;)</p>
<p>Pour les plus passionn&#233;s, vous trouverez le <a href="http://wordpress.org/extend/plugins/simple-tags/other_notes/">changelog sur le site de WordPress.org</a>, en anglais bien s&#251;r !</p>
<p>Le t&#233;l&#233;chargement se d&#233;roule comme toujours sur le site de WordPress.org ! Plus pr&#233;cis&#233;ment sur la <a href="http://wordpress.org/extend/plugins/simple-tags/">fiche de Simple Tags.</a></p>
<p>Comme d&#8217;habitude, merci pour vos nombreux retours !</p>
<p><strong>Edit:</strong> Une version 1.3.2, et 1.3.3 ont vu le jour, la version 1.3.2 mettant juste &#224; jour le fichier de langue japonaise, tandis que la version 1.3.3 corrige un petit bug lors de la recherche dans l&#8217;&#233;dition de masse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.herewithme.fr/2008/01/28/sortie-de-simple-tags-131-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

