<?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>L&#039;autre monde &#187; wordpress</title>
	<atom:link href="http://www.lautre-monde.fr/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lautre-monde.fr</link>
	<description></description>
	<lastBuildDate>Thu, 02 Feb 2012 13:05:01 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WordPress is the best!</title>
		<link>http://www.lautre-monde.fr/wordpress-is-the-best/</link>
		<comments>http://www.lautre-monde.fr/wordpress-is-the-best/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 12:48:10 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2927</guid>
		<description><![CDATA[Ma seule erreur lorsque j&#8217;ai décidé de me lancer dans le blogging, c&#8217;est de ne pas avoir opté pour WordPress d&#8217;emblée. Je voulais m&#8217;affranchir complètement de la partie technique. C&#8217;était une erreur car WordPress la simplifie tellement que c&#8217;est juste un plaisir. J&#8217;ai d&#8217;abord erré sur Overblog avec toutes les limitations d&#8217;un tel service puis...]]></description>
			<content:encoded><![CDATA[<p>Ma seule erreur lorsque j&#8217;ai décidé de me lancer dans le blogging, c&#8217;est de ne pas avoir opté pour WordPress d&#8217;emblée. Je voulais m&#8217;affranchir complètement de la partie technique. C&#8217;était une erreur car WordPress la simplifie tellement que c&#8217;est juste un plaisir.</p>
<p>J&#8217;ai d&#8217;abord erré sur Overblog avec toutes les limitations d&#8217;un tel service puis sur Typepad avec un lot tout aussi conséquent de limites puis j&#8217;ai découvert WordPress un peu plus de deux ans après. Depuis, je me demande comment font les autres systèmes pour exister&#8230;</p>
<p>WordPress est beau, simple, souple, rapide et stable. Il a tout ce que l&#8217;on peut attendre d&#8217;un système informatique avec les problèmes en moins.</p>
<p>Je suis passé en version 3.2.1 en début de semaine de manière complètement transparente. Je n&#8217;ai eu aucun problème lors de la migration qui s&#8217;est faite en quelques secondes. Imaginez un upgrade de Windows en un clic? Bref, c&#8217;est juste hallucinant ce qu&#8217;ils sont parvenus à faire avec cette plateforme.</p>
<p>Le public comme les professionnels de l&#8217;internet ne s&#8217;y sont d&#8217;ailleurs pas trompés puisque WordPress est, et de loin, la plateforme la plus répandue sur le web avec plus de 15% des sites qui tournent sous WordPress.</p>
<p>Si vous n&#8217;y connaissez rien à l&#8217;informatique et vous souhaitez monter un site, optez pour WordPress, vous apprendrez le web en douceur et sans douleur. Longue vie à WordPress!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/wordpress-is-the-best/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pensées sur WordPress</title>
		<link>http://www.lautre-monde.fr/pensees-sur-wordpress/</link>
		<comments>http://www.lautre-monde.fr/pensees-sur-wordpress/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 07:20:55 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2745</guid>
		<description><![CDATA[Vous le savez, depuis plus de trois ans maintenant, ce blog fonctionne sous WordPress. Pour ceux qui ne connaissent pas WordPress, c&#8217;est à la base un moteur de blogs. En réalité, son usage est très souvent détourné pour en faire n&#8217;importe quel type de site web. Plus de 12% des sites Internet fonctionneraient sous WordPress,...]]></description>
			<content:encoded><![CDATA[<p>Vous le savez, depuis plus de trois ans maintenant, ce blog fonctionne sous WordPress. Pour ceux qui ne connaissent pas WordPress, c&#8217;est à la base un moteur de blogs. En réalité, son usage est très souvent détourné pour en faire n&#8217;importe quel type de site web. Plus de 12% des sites Internet fonctionneraient sous WordPress, en faisant ainsi le premier moteur de sites!</p>
<p>Aujourd&#8217;hui, lorsque l&#8217;on veut créer un blog, que l&#8217;on s&#8217;y connaisse ou pas en informatique, WordPress est le choix qui s&#8217;impose. Facile à installer, facile à utiliser, facile à faire évoluer, WordPress, c&#8217;est le couteau suisse du site web couplé à un moteur de Ferrari pilotable sans permis! Donc pour les blogs, il n&#8217;y a plus de débat depuis bien longtemps. WordPress est loin, très loin devant et les rares alternatives ont sombré dans l&#8217;oubli.</p>
<p>Donc la vraie question est plutôt de savoir si WordPress est une bonne idée pour faire un site web corporate. Selon moi, la réponse est oui. Plusieurs arguments plaident en faveur de WordPress. Tout d&#8217;abord le nombre de themes et de plugins disponibles : des dizaines de milliers rendant les possibilités quasiment infinies. Ensuite, il y a l&#8217;importance de la communauté. Sur WordPress, quand vous avez un problème ou un souhait, il y a 95% de chances pour qu&#8217;une autre personne ait rencontré le même problème ou eu la même idée et du coup, on trouve presque toujours une réponse à ses besoins. Enfin, il y a la robustesse. WordPress, c&#8217;est du très solide. Je ne vois pas trop de moteur de CMS en mesure de soutenir la comparaison avec WordPress. Bref, WordPress, c&#8217;est le number one et c&#8217;est pas prêt de changer!</p>
<p>WordPress est d&#8217;ailleurs tellement populaire qu&#8217;un certain nombre de poids lourds du monde des technologies s&#8217;y intéressent de très près. Il y a d&#8217;abord Microsoft qui a migré tous les blogs sur la plateforme Myspace sur WordPress il y a quelques mois. On peut aisément imaginer l&#8217;intérêt pour un Microsoft de mettre la main un jour sur WordPress. Google aussi pourrait être interessé, sa plateforme Blogger n&#8217;étant pas un succès technique digne des autres applis de l&#8217;entreprise.</p>
<p>Côté futur, WordPress commence un peu à se heurter aux difficultés liées à sa popularité. Le core team d&#8217;Automattic est assez restreint. Du coup, les nouvelles versions prennent régulièrement du retard, ce qu&#8217;au passage, je ne critique pas, le contraire serait étonnant vu la quantité de travail. Au niveau fonctionnalités, WordPress couvre 99% des fonctionnalités imaginables pour un blog et il faut donc songer à le faire évoluer pour répondre à des besoins plus larges. Ceci passera inéluctablement par l&#8217;intégration dans le core de plugins essentiels comme le plugin de cache ou certaines fonctions SEO ou encore de backup.</p>
<p>Bref, WordPress a un avenir prometteur, s&#8217;il parvient à négocier correctement le virage de la professionnalisation afin de lui ouvrir toujours plus de sites souvent jusque là confinés à des CMS fait maison.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/pensees-sur-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.8.1 et la sécurité</title>
		<link>http://www.lautre-monde.fr/wordpress-2-8-1-et-la-securite/</link>
		<comments>http://www.lautre-monde.fr/wordpress-2-8-1-et-la-securite/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 08:31:15 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2264</guid>
		<description><![CDATA[WordPress 2.8.1 vient tout juste de sortir. Cette version fixe son lot de bugs et un problème de sécurité lié aux plugins. Il y a désormais une vérification qui est réalisée pour chaque plugin lors du chargement des pages de ce plugin dans l&#8217;admin. Si la page demandée a bien été enregistrée via la fonction...]]></description>
			<content:encoded><![CDATA[<p>WordPress 2.8.1 vient tout juste de sortir. Cette version fixe son lot de bugs et un <a href="http://corelabs.coresecurity.com/index.php?module=FrontEndMod&#038;action=view&#038;type=advisory&#038;name=WordPress_Privileges_Unchecked">problème de sécurité lié aux plugins</a>. Il y a désormais une vérification qui est réalisée pour chaque plugin lors du chargement des pages de ce plugin dans l&#8217;admin. Si la page demandée a bien été enregistrée via la fonction add_menu_page (ou l&#8217;une de ses variantes), tout va bien. En revanche, si le plugin fait appel à un fichier php tiers pour traiter le résultat d&#8217;un formulaire par exemple, alors là, rien ne va plus!</p>
<p>Il est donc probable que beaucoup de plugins vont avoir de gros problèmes à fonctionner après le passage en 2.8.1, notamment pour ceux qui utilisent des redirections et des fichiers de traitement.</p>
<p>Pour rendre les plugins compatibles, voici la solution. Il faut dans la fonction qui ajoute les menus enregistrer vos pages tierces via la ligne suivante :</p>
<p>$_registered_pages[get_plugin_page_hookname('&lt;plugin_dir&gt;/&lt;plugin_filename&gt;.php','')] = true;</p>
<p>Bien entendu, n&#8217;oubliez pas de déclarer au début de la fonction la variable globale $_registered_pages sinon cela ne risque pas de fonctionner.</p>
<p>J&#8217;ai utilisé cette solution avec succès pour rendre <a href="http://www.lautre-monde.fr/wats/">WATS</a> compatible avec WP 2.8.1.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/wordpress-2-8-1-et-la-securite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.8</title>
		<link>http://www.lautre-monde.fr/wordpress-28/</link>
		<comments>http://www.lautre-monde.fr/wordpress-28/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 14:07:24 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2219</guid>
		<description><![CDATA[La très attendue version 2.8 de WordPress est enfin disponible! Elle devait au départ sortir en mars mais elle a été retardée par pas mal de bugs. Elle est enfin là, alleluia! Elle s&#8217;appelle Baker et s&#8217;installe automatiquement en un clic de souris. Au niveau de l&#8217;admin, il n&#8217;y a pas de grands changements et...]]></description>
			<content:encoded><![CDATA[<p>La très attendue version 2.8 de WordPress est enfin disponible! Elle devait au départ sortir en mars mais elle a été retardée par pas mal de bugs. Elle est enfin là, alleluia! Elle s&#8217;appelle Baker et s&#8217;installe automatiquement en un clic de souris.</p>
<p>Au niveau de l&#8217;admin, il n&#8217;y a pas de grands changements et c&#8217;est très bien comme ça car l&#8217;interface d&#8217;admin a déjà atteint un niveau d&#8217;ergonomie proche de la perfection. Au niveau des fonctionnalités essentielles : une nouvelle interface de gestion des widgets, l&#8217;installation des themes depuis l&#8217;admin (comme pour les plugins), optimisation du chargement des scripts dans l&#8217;admin, etc&#8230; Vous pouvez voir <a href="http://codex.wordpress.org/Version_2.8">ici la liste des nouveautés</a>. Il y a plus de 180 nouvelles features et 790 fixes, joli boulot!</p>
<p>Au niveau du développement des plugins, comme jQuery est passé en V1.3, un certain nombre de plugins vont devoir être mis à jour pour faire évoluer l&#8217;ancienne notation avec un sélecteur @, celui-ci n&#8217;étant plus pris en compte en 1.3. Il y a également quelques changements apparemment dans la gestion des taxonomies. J&#8217;ai corrigé les quelques problèmes apparus dans mon système de gestion de tickets suite à cet upgrade. J&#8217;espère donc être en mesure de le publier sous peu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/wordpress-28/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Migration des permaliens</title>
		<link>http://www.lautre-monde.fr/migration-permaliens/</link>
		<comments>http://www.lautre-monde.fr/migration-permaliens/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 15:59:40 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2175</guid>
		<description><![CDATA[J&#8217;ai entrepris hier la migration des permaliens du blog. Sous WordPress, c&#8217;est un jeu d&#8217;enfant ou presque puisqu&#8217;il suffit de modifier la structure dans le panneau de configuration. Je suis passé de la nomenclature /%category%/%postname%/ à /%postname%/ afin de réduire la longueur de l&#8217;url et donc de la rendre plus pertinente. Seul problème rencontré, il...]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai entrepris hier la migration des permaliens du blog. Sous WordPress, c&#8217;est un jeu d&#8217;enfant ou presque puisqu&#8217;il suffit de modifier la structure dans le panneau de configuration. Je suis passé de la nomenclature /%category%/%postname%/ à /%postname%/ afin de réduire la longueur de l&#8217;url et donc de la rendre plus pertinente.</p>
<p>Seul problème rencontré, il existe depuis quelques versions de WordPress ce que l&#8217;on appelle la page &laquo;&nbsp;attachment&nbsp;&raquo; qui est un post vide contenant juste l&#8217;attachement en question (photo, vidéo, etc&#8230;). Si vous avez dans vos posts, une image avec le même nom que le post, la redirection n&#8217;aura pas lieu correctement après la migration <img src='http://www.lautre-monde.fr/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Migration des permaliens" class='wp-smiley' title="Migration des permaliens" /> </p>
<p>Voici un exemple concret : j&#8217;ai un post &laquo;&nbsp;toto&nbsp;&raquo; dans la catégorie titi avec une photo intitulée &laquo;&nbsp;toto.jpg&nbsp;&raquo;. Vous pouvez accéder à la photo via /titi/toto/toto/ avant la migration. Après la migration, vous pourrez toujours accéder à la photo via titi/toto/ et donc l&#8217;utilisateur suivant l&#8217;ancienne URL ne sera pas redirigé vers /toto/ qui est la nouvelle URL.</p>
<p>Il existe un certain nombre de plugins fonctionnant plus ou moins bien pour gérer automatiquement les redirections 301 de l&#8217;ancienne structure vers la nouvelle :</p>
<ul>
<li><a href="http://www.deanlee.cn/wordpress/permalinks-migration-plugin/">Dean permalink migration</a> : gère correctement le cas décrit ci-dessus mais casse les liens de feed et de trackback;</li>
<li><a href="http://scott.yang.id.au/code/permalink-redirect/">Permalink redirect</a> : permet de gérer plusieurs structures antérieures apparemment mais ne gère pas le cas décrit ci-dessus.</li>
</ul>
<p>Comme aucune solution automatique ne fonctionnait à 100%, je me suis tourné vers l&#8217;indispensable plugin <a href="http://urbangiraffe.com/plugins/redirection/">redirection</a> et j&#8217;ai créé manuellement les redirections. Cela peut sembler fastidieux mais en réalité, cela ne prend que 10 minutes. Il suffit de créer un fichier .csv avec cette tête :</p>
<p style="text-align: center;">/categorie1/(.*)/,/$1/,301</p>
<p style="text-align: center;">/categorie2/(.*)/,/$1/,301</p>
<p>Ensuite vous l&#8217;importez via le panneau d&#8217;admin du plugin et ça roule! Ainsi, la redirection est forcée et on n&#8217;arrive plus sur la page de l&#8217;attachement. Bon au final, j&#8217;ai quand même passé la journée là dessus à cause de cette histoire d&#8217;attachement. En effet, il m&#8217;a fallu des heures avant de trouver le dénominateur commun à tous ces posts qui n&#8217;étaient pas redirigés correctement. Mais bon voilà maintenant, ça marche! Si vous voyez des problèmes, n&#8217;hésitez pas à me les signaler.</p>
<p>Edit du 12/04/2009 :</p>
<p>Il faut aussi deux redirections &laquo;&nbsp;do nothing&nbsp;&raquo; avant celles des catégories comme suit :</p>
<p style="text-align: center;">/category/(.*)/</p>
<p style="text-align: center;">/tag/(.*)/</p>
<p style="text-align: left;">Si vous n&#8217;insérez pas ces redirections &laquo;&nbsp;do nothing&nbsp;&raquo;, vous risquez d&#8217;avoir des matches avec vos redirections de notes et des redirections non souhaitées (notamment pour les subpages de catégories et de tags).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/migration-permaliens/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Profiless</title>
		<link>http://www.lautre-monde.fr/profiless/</link>
		<comments>http://www.lautre-monde.fr/profiless/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 20:11:52 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2125</guid>
		<description><![CDATA[Suite à une demande sur le forum wordpress Fr, j&#8217;ai créé un petit plugin pour bloquer l&#8217;accès au profil utilisateur dans la partie admin pour les utilisateurs de niveau 0 (les subscribers). C&#8217;est pratique pour ceux qui gèrent des blogs avec des centaines d&#8217;utilisateurs et ne veulent pas que ceux-ci modifient leur profil eux mêmes....]]></description>
			<content:encoded><![CDATA[<p>Suite à une demande sur le forum wordpress Fr, j&#8217;ai créé un petit plugin pour bloquer l&#8217;accès au profil utilisateur dans la partie admin pour les utilisateurs de niveau 0 (les subscribers). C&#8217;est pratique pour ceux qui gèrent des blogs avec des centaines d&#8217;utilisateurs et ne veulent pas que ceux-ci modifient leur profil eux mêmes.</p>
<p>Je mets ce plugin donc à disposition de tous même si je pense qu&#8217;il aura une audience très limitée. Si vous l&#8217;utilisez, n&#8217;hésitez pas à me laisser un petit commentaire, cela fait toujours plaisir!</p>
<p>Si vous rencontrez un problème avec ce plugin, laissez moi un commentaire ou envoyer un mail via le formulaire de contact.</p>
<p>Voici le <a href="http://wordpress.org/extend/plugins/profiless/">lien de téléchargement</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/profiless/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>JSON</title>
		<link>http://www.lautre-monde.fr/json/</link>
		<comments>http://www.lautre-monde.fr/json/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 06:54:28 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2097</guid>
		<description><![CDATA[Le JSON, vous ne savez sûrement pas ce que c&#8217;est, enfin jusqu&#8217;à aujourd&#8217;hui. Cela veut dire : &#171;&#160;Javascript Object Notation&#160;&#187;. En clair, c&#8217;est un format de données structurées qui est notamment utilisé en Ajax pour échanger des données entre le client et le server. Le JSON permet d&#8217;adopter un format commun entre le client et...]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-2098" title="json160" src="http://www.lautre-monde.fr/wp-content/uploads/2009/02/json160.gif" alt="json160 JSON" width="160" height="160" align="left" />Le JSON, vous ne savez sûrement pas ce que c&#8217;est, enfin jusqu&#8217;à aujourd&#8217;hui. Cela veut dire : &laquo;&nbsp;Javascript Object Notation&nbsp;&raquo;. En clair, c&#8217;est un format de données structurées qui est notamment utilisé en Ajax pour échanger des données entre le client et le server. Le JSON permet d&#8217;adopter un format commun entre le client et le server ce qui fait qu&#8217;ils arrivent à se comprendre.</p>
<p>Le problème, c&#8217;est que c&#8217;est assez peu documenté. Cependant, si vous voulez passer des tableaux du client au server ou du server au client dans le cadre d&#8217;une application web javascript avec un server php, vous allez avoir du mal à vous en passer.</p>
<p>Je vais donc vous donner quelques pistes côté client et côté server pour vous familiariser avec le JSON et éviter les pièges dans lesquels je suis tombé et où j&#8217;ai perdu de nombreuses heures avant de comprendre ce qui se passait car forcément, debugger de l&#8217;ajax côté php, c&#8217;est pas très facile.</p>
<p>Alors commençons par la voie client vers server. Imaginons que notre utilisateur remplit une table qu&#8217;il va poster en ajax pour traitement par le server. Tout d&#8217;abord, il faut &laquo;&nbsp;jsonifier&nbsp;&raquo; le tableau (néologisme pour indiquer que l&#8217;on encode la table en format json). Pour cela, c&#8217;est très simple, on fait un petit appel à la fonction JSON.stringify avec comme paramètre l&#8217;id de notre tableau. Il nous retourne le tableau stringifié! <a href="http://fr.wikipedia.org/wiki/JavaScript_Object_Notation">La page de Wikipedia sur le JSON</a> vous donne une idée du format en question. En gros, c&#8217;est du style {&laquo;&nbsp;key&nbsp;&raquo;:&nbsp;&raquo;value&nbsp;&raquo;,&nbsp;&raquo;key&nbsp;&raquo;:&nbsp;&raquo;valeur&nbsp;&raquo;} avec des imbrications possibles si vous utilisez un tableau multidimensionnel. On envoie ensuite la table en ajax avec un post au server qui la récupère et là ouvrez en grand vos yeux, j&#8217;ai passé trois heures avant de comprendre ce qui se passait, il faut appliquer un stripslashes sur le tableau côté server sinon le json_decode vous renvoit un tableau vide! Voici le bout de code :</p>
<p><code>  $tableau = json_decode(stripslashes($_POST[tableau]));</code></p>
<p>Voilà, maintenant, vous savez comment récupérer le tableau, il est alors formaté correctement pour être exploité par le server.</p>
<p>Mais quid de l&#8217;autre sens? Et bien c&#8217;est à peu près pareil. On commence par encoder notre tableau avec json_encode et on le balance au client avec un echo. Voici le bout de code :<br />
<code><br />
$result = array('success' =&gt; "TRUE", 'erreur' =&gt; "Tout va bien!");<br />
echo json_encode($result);<br />
</code></p>
<p>Puis on récupère dans la fonction de résultat du call Ajax le tableau jsonifié avec un eval comme suit :<br />
<code><br />
var tableau = eval('(' + ajaxres + ')');<br />
</code></p>
<p>Et voilà, vous savez à présent comment échanger des données complexes entre le client et le server en Ajax grâce au JSON! Dernier point, pour utiliser la fonction stringify, je vous recommande de télécharger le script <a href="http://www.json.org/js.html">json2.js</a>.</p>
<table border="0">
<tbody>
<tr>
<td><img title="wordpress-plugin-button" src="http://www.lautre-monde.fr/wp-content/uploads/2009/01/wordpress-plugin-button.jpg" alt="wordpress plugin button JSON" width="65" height="65" /></td>
<td><a href="http://www.lautre-monde.fr/comment-ecrire-un-plugin-wordpress/">Retour au sommaire du dossier sur l&#8217;écriture d&#8217;un plugin wordpress</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/json/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mise à jour WordPress 2.7.1</title>
		<link>http://www.lautre-monde.fr/mise-a-jour-wordpress-271/</link>
		<comments>http://www.lautre-monde.fr/mise-a-jour-wordpress-271/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 11:06:53 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2088</guid>
		<description><![CDATA[Et voilà, le blog vient de passer en version 2.7.1 grâce au formidable tool d&#8217;automatic upgrade. Comme je sais que certains ont eu quelques problèmes lors de la mise à jour, je vous recommande de bien mettre à jour en utilisant la version fr-FR et non la version de base si vous utilisez la version...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lautre-monde.fr/wp-content/uploads/2009/02/wordpress-update.jpg" rel="lightbox[2088]"><img class="alignnone size-full wp-image-2089" title="wordpress-update" src="http://www.lautre-monde.fr/wp-content/uploads/2009/02/wordpress-update.jpg" alt="wordpress update Mise à jour Wordpress 2.7.1" width="165" height="65" align="left" /></a>Et voilà, le blog vient de passer en version 2.7.1 grâce au formidable tool d&#8217;automatic upgrade. Comme je sais que certains ont eu quelques problèmes lors de la mise à jour, je vous recommande de bien mettre à jour en utilisant la version fr-FR et non la version de base si vous utilisez la version française. Si l&#8217;option pour installer la version fr-FR n&#8217;apparaît pas, soit il y a un problème de configuration sur votre blog et il ne la détecte donc pas, soit il faut attendre un peu le temps que l&#8217;API fasse un nouveau poll. Si vous voyez des bugs suite au passage en 2.7.1 sur le blog, merci de bien vouloir m&#8217;en faire part <img src='http://www.lautre-monde.fr/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Mise à jour Wordpress 2.7.1" class='wp-smiley' title="Mise à jour Wordpress 2.7.1" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/mise-a-jour-wordpress-271/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Utiliser le nonce dans son plugin WordPress</title>
		<link>http://www.lautre-monde.fr/utiliser-le-nonce-dans-son-plugin-wordpress/</link>
		<comments>http://www.lautre-monde.fr/utiliser-le-nonce-dans-son-plugin-wordpress/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 16:05:21 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2079</guid>
		<description><![CDATA[Vous le savez probablement, Internet est une jungle où les hackers s&#8217;amusent à trouver des failles de sécurité pour pirater les sites. Si vous écrivez un plugin wordpress, il faut essayer de le sécuriser un minimum afin d&#8217;éviter qu&#8217;il ouvre des portes d&#8217;entrée sur votre blog (voire votre base de données). Lorsque l&#8217;on soumet un...]]></description>
			<content:encoded><![CDATA[<p>Vous le savez probablement, Internet est une jungle où les hackers s&#8217;amusent à trouver des failles de sécurité pour pirater les sites. Si vous écrivez un plugin wordpress, il faut essayer de le sécuriser un minimum afin d&#8217;éviter qu&#8217;il ouvre des portes d&#8217;entrée sur votre blog (voire votre base de données).</p>
<p>Lorsque l&#8217;on soumet un formulaire (form submit en post ou get), il y a une interaction avec le server qui va parser et exploiter les données que vous lui envoyez. Le problème est que cela doit se faire suivant une séquence bien précise avec un certain nombre de contrôles. Si un utilisateur parvient à soumettre ses données directement en outrepassant ces contrôles, il y a un risque pour le système car il peut alors soumettre n&#8217;importe quoi ou profiter de privilèges dont il ne dispose pas.</p>
<p>Le nonce field permet d&#8217;empêcher cela. Toute soumission directe sera bloquée grâce à ce système.</p>
<p>Comment est ce que cela fonctionne techniquement? Le système vous fournit une clé lors du chargement du formulaire. Vous allez soumettre au système votre formulaire rempli. Celui-ci va alors vérifier que la clé fournie est bien celle qu&#8217;il récupère dans le formulaire soumis. Si ce n&#8217;est pas le cas, cela veut dire que vous n&#8217;avez pas soumis vos données via le formulaire qu&#8217;il vous a fourni et donc il rejette la soumission!</p>
<p>Vous trouverez sur wikipedia un <a href="http://en.wikipedia.org/wiki/Cryptographic_nonce">joli schéma</a> qui explique tout ça très bien.</p>
<p>Concrètement, pour implémenter cette protection au niveau des formulaires de votre plugin, il faut procéder de la manière suivante :</p>
<p>1/ Entre les balises &lt;form&gt;&lt;/form&gt; vous insérez le code suivant :</p>
<p>&lt;form action=&nbsp;&raquo;" method=&nbsp;&raquo;post&nbsp;&raquo;&gt;<br />
&lt;?php wp_nonce_field(&#8216;myplugin-nonce-form1&#8242;); ?&gt;&lt;/form&gt;</p>
<p>2/ Au niveau de la fonction de retour du formulaire où vous avez le $_POST, vous faites le check sur le nonce :</p>
<p>if (isset($_POST['submit']))<br />
check_admin_referer(&#8216;myplugin-nonce-form1&#8242;)</p>
<p>Si vous voulez vérifier que le mécanisme fonctionne bien, insérez juste le code de la seconde partie (le check). Comme vous n&#8217;aurez pas inséré le nonce dans le formulaire, la clé ne sera pas soumise et WordPress rejettera la soumission.</p>
<p>Si on soulève le capôt, voici ce que wordpress va insérer dans le code HTML de la page contenant le formulaire :</p>
<p>&lt;input id=&nbsp;&raquo;_wpnonce&nbsp;&raquo; name=&nbsp;&raquo;_wpnonce&nbsp;&raquo; type=&nbsp;&raquo;hidden&nbsp;&raquo; value=&nbsp;&raquo;71fd0b1cc7&#8243; /&gt;&lt;input name=&nbsp;&raquo;_wp_http_referer&nbsp;&raquo; type=&nbsp;&raquo;hidden&nbsp;&raquo; value=&nbsp;&raquo;page.php&nbsp;&raquo; /&gt;</p>
<p>Il soumet donc un champ caché et en test ensuite la valeur. Le hacker pourra toujours essayer de reproduire ça, il n&#8217;a aucune chance d&#8217;y parvenir sachant que la clé change à chaque passage.</p>
<table border="0">
<tbody>
<tr>
<td><img title="wordpress-plugin-button" src="http://www.lautre-monde.fr/wp-content/uploads/2009/01/wordpress-plugin-button.jpg" alt="wordpress plugin button Utiliser le nonce dans son plugin Wordpress" width="65" height="65" /></td>
<td><a href="http://www.lautre-monde.fr/comment-ecrire-un-plugin-wordpress/">Retour au sommaire du dossier sur l&#8217;écriture d&#8217;un plugin wordpress</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/utiliser-le-nonce-dans-son-plugin-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Supprimer un menu dans l&#8217;administration</title>
		<link>http://www.lautre-monde.fr/supprimer-un-menu-dans-ladministration/</link>
		<comments>http://www.lautre-monde.fr/supprimer-un-menu-dans-ladministration/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 10:11:36 +0000</pubDate>
		<dc:creator>Olivier</dc:creator>
				<category><![CDATA[Web/Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lautre-monde.fr/?p=2042</guid>
		<description><![CDATA[Ce qui est vraiment formidable avec WordPress, c&#8217;est que l&#8217;on peut presque tout faire! Ainsi, si vous souhaitez bloquer l&#8217;accès à certains menus pour certains utilisateurs dans l&#8217;administration, c&#8217;est tout à fait possible, et ce sans modifier le code du core. On commence par supprimer le lien vers le menu dans la barre des menus...]]></description>
			<content:encoded><![CDATA[<p>Ce qui est vraiment formidable avec WordPress, c&#8217;est que l&#8217;on peut presque tout faire! Ainsi, si vous souhaitez bloquer l&#8217;accès à certains menus pour certains utilisateurs dans l&#8217;administration, c&#8217;est tout à fait possible, et ce sans modifier le code du core.</p>
<p>On commence par supprimer le lien vers le menu dans la barre des menus en faisant un unset sur l&#8217;index correspondant dans la variable globale menu. Par exemple, pour bloquer l&#8217;accès à la modification du profil, je fais :</p>
<p><code>unset($menu[50]);</code></p>
<p>Pour savoir quel $menu[x] il faut unsetter, il faut regarder dans le fichier menu.php dans le répertoire wp-admin. Cette action aura pour effet de supprimer l&#8217;icône dans le menu d&#8217;admin.</p>
<p>Ce n&#8217;est pas suffisant car l&#8217;accès direct à la page est toujours possible pour celui qui en connaît l&#8217;url. Mais aucun problème, là encore, j&#8217;ai la solution! On faire un check sur la page en cours de chargement et si c&#8217;est une page pour laquelle on ne souhaite pas donner accès à l&#8217;utilisateur, on le redirige vers une autre page à laquelle on lui donne accès sinon, bonjour la boucle de redirection.</p>
<p>Voici le bout de code pour faire la manipulation. Ici je bloque l&#8217;accès à l&#8217;édition du profil pour les utilisateurs de niveau 0 et je les redirige vers le dashboard de l&#8217;admin :</p>
<p><code><br />
$requesteduri = $_SERVER['REQUEST_URI'];<br />
$destinationpage = get_option('siteurl') . '/wp-admin/index.php';<br />
$position = strpos($requesteduri, '/wp-admin/profile.php');</code></p>
<p><code>if (($position != 0) &amp;&amp; ($current_user-&gt;user_level == 0))<br />
wp_safe_redirect($destinationpage);</code></p>
<p>Donc pour résumer, pour bloquer l&#8217;accès à une page dans l&#8217;admin :</p>
<p>1/ on supprime l&#8217;entrée dans le menu;</p>
<p>2/ on met en place une redirection pour empêcher l&#8217;accès direct.</p>
<p>Ces deux actions doivent être réalisées assez tôt dans le chargement de la page. Il faut donc faire un hook sur l&#8217;action plugins_loaded par exemple, ça fonctionnera bien comme ça.</p>
<table border="0">
<tbody>
<tr>
<td><img title="wordpress-plugin-button" src="http://www.lautre-monde.fr/wp-content/uploads/2009/01/wordpress-plugin-button.jpg" alt="wordpress plugin button Supprimer un menu dans ladministration" width="65" height="65" /></td>
<td><a href="http://www.lautre-monde.fr/comment-ecrire-un-plugin-wordpress/">Retour au sommaire du dossier sur l&#8217;écriture d&#8217;un plugin wordpress</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.lautre-monde.fr/supprimer-un-menu-dans-ladministration/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

