<?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>Wareteam &#187; hook</title>
	<atom:link href="http://www.wareteam.com/tag/hook/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wareteam.com</link>
	<description>Pas de Slogan lol</description>
	<lastBuildDate>Thu, 15 Jul 2010 10:32:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Mon premier plugin wordpress.</title>
		<link>http://www.wareteam.com/mon-premier-plugin-wordpress</link>
		<comments>http://www.wareteam.com/mon-premier-plugin-wordpress#comments</comments>
		<pubDate>Tue, 01 Jan 2008 20:04:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[add_action]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.wareteam.com/?p=15</guid>
		<description><![CDATA[Si vous avez balayé un peu le code de wordpress, vous avez surement vu une ligne comme la suivante : &#60;?php do_action&#40;&#8216;login_form&#8217;&#41;; ?&#62; Vous vous demandez à quoi ca sert ? Cette ligne va exécuter les fonctions ajoutées à l&#8217;action login_form. Grâce à la fonction add_action, on peut exécuter des fonctions dans des endroits du [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous avez balayé un peu le code de wordpress, vous avez surement vu une ligne comme la suivante :</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span> do_action<span class="br0">&#40;</span><span class="st0">&#8216;login_form&#8217;</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Vous vous demandez à quoi ca sert ?</p>
<p>Cette ligne va exécuter les fonctions ajoutées à l&#8217;action <strong>login_form</strong>.</p>
<p>Grâce à la fonction <strong>add_action</strong>, on peut exécuter des fonctions dans des endroits du code.</p>
<p>Un exemple simple pour afficher le mot &laquo;&nbsp;hello&nbsp;&raquo; à la place de<br />
 do_action(&#8216;register_form&#8217;);  qui se trouve sur la page wp-login.php à la ligne 268</p>
<p><span id="more-15"></span></p>
<p>On déclare notre fonction afficheHello</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> afficheHello<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Hello&quot;</span>;<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Ensuite on va ajouter à l&#8217;événement register_form la fonction afficheHello</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span> add_action<span class="br0">&#40;</span><span class="st0">&#8216;register_form&#8217;</span>, <span class="st0">&#8216;afficheHello&#8217;</span><span class="br0">&#41;</span>;?&gt;</div>
</li>
</ol>
</div>
<p>Notre fonction <strong>afficheHello </strong>sera exécutée à la page wp-login.php à la ligne 268.</p>
<p>Grâce à ce mécanisme, on peut ajouter des fonctions externes au noyau de wordpress en utilisant des plugins.Pourquoi ne pas modifier formulaire de login directement ?</p>
<p>Une manipulation dans le code directement, vous empêchera de mettre à jour wordpress ultérieurement.</p>
<p>Le plugin suivant va nous permettre d&#8217;ajouter deux champs supplémentaires (Le nom et le prénom) au formulaire d&#8217;enregistrement d&#8217;un nouveau membre sans toucher au code wordpress.</p>
<p>Pour tester il suffit d&#8217;enregistrer le fichier suivant dans le répertoire wp-content/plugins/ ensuite de l&#8217;activer dans la page plugins dans l&#8217;interface admin.</p>
<p>Le commentaire au début du fichier est nécessaire pour afficher les informations dans la page des plugins :</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">Plugin Name: Mon premier pluginPlugin URI: http://www.wareteam.com</span></div>
</li>
<li class="li2">
<div class="de2"><span class="coMULTI">Description: C&#8217;est un plugin qui permet d&#8217;ajouter un champ nom et un champ prenom a la page inscription. Ce plugin a pour but de vous apprendre le mecanisme des plugins.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">Author: Yassine HANINI</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">Version: 1.0</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">Author URI: http://www.wareteam.com/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">*/</span></div>
</li>
</ol>
</div>
<p><a href="http://www.wareteam.com/wp-content/uploads/2009/12/myplugin.jpg"><img class="alignnone size-medium wp-image-16" title="Apercu dans la liste des plugins" src="http://www.wareteam.com/wp-content/uploads/2009/12/myplugin-300x51.jpg" alt="" width="300" height="51" /></a></p>
<p>à la suite :</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// Cette fonction affiche deux zones de texte nom et prénom</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> ajouterChamps<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;p&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;label&gt;&quot;</span>.__<span class="br0">&#40;</span><span class="st0">&#8216;Name:&#8217;</span><span class="br0">&#41;</span>.<span class="st0">&quot;&lt;br /&gt;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">&lt;input type=<span class="es0">\&quot;</span>text<span class="es0">\&quot;</span> name=<span class="es0">\&quot;</span>last_name<span class="es0">\&quot;</span> id=<span class="es0">\&quot;</span>last_name<span class="es0">\&quot;</span> class=<span class="es0">\&quot;</span>input<span class="es0">\&quot;</span> value=<span class="es0">\&quot;</span>&quot;</span>.attribute_escape<span class="br0">&#40;</span><a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;last_name&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\&quot;</span> size=<span class="es0">\&quot;</span>25<span class="es0">\&quot;</span> tabindex=30 /&gt;&lt;/label&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;/p&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;p&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;label&gt;&quot;</span>.__<span class="br0">&#40;</span><span class="st0">&#8216;Firstname:&#8217;</span><span class="br0">&#41;</span>.<span class="st0">&quot;&lt;br /&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;input type=<span class="es0">\&quot;</span>text<span class="es0">\&quot;</span> name=<span class="es0">\&quot;</span>first_name<span class="es0">\&quot;</span> id=<span class="es0">\&quot;</span>first_name<span class="es0">\&quot;</span> class=<span class="es0">\&quot;</span>input<span class="es0">\&quot;</span> value=<span class="es0">\&quot;</span>&quot;</span>.attribute_escape<span class="br0">&#40;</span><a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;first_name&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\&quot;</span> size=<span class="es0">\&quot;</span>25<span class="es0">\&quot;</span> tabindex=40 /&gt;&lt;/label&gt;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">&lt;/p&gt;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Mise à jour de la table user_meta avec les données nom et prénom</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// $userid est un parametre passer automatiquement à l&#8217;action de user_register</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">function</span> sauverChamps<span class="br0">&#40;</span><span class="re0">$userid</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// appliquer un filtre sur les champs</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// strip_tags, trim, wp_filter_kses, wp_specialchars</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// voir fichier wp-includes/default-filters.php ligne 19</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$first_name</span> = apply_filters<span class="br0">&#40;</span><span class="st0">&#8216;pre_user_first_name&#8217;</span>, <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;first_name&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$last_name</span> = apply_filters<span class="br0">&#40;</span><span class="st0">&#8216;pre_user_last_name&#8217;</span>, <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;last_name&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// ajoute ou met à jour la table wp-usermeta.</span></div>
</li>
<li class="li2">
<div class="de2">update_usermeta<span class="br0">&#40;</span> <span class="re0">$userid</span>, <span class="st0">&#8216;last_name&#8217;</span>, <span class="re0">$last_name</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">update_usermeta<span class="br0">&#40;</span> <span class="re0">$userid</span>, <span class="st0">&#8216;first_name&#8217;</span>, <span class="re0">$first_name</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// execute la fonction ajouterChamps à l&#8217;action :</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// do_action(&#8216;register_form&#8217;); se trouve sur la page wp-login.php à la ligne 268</span></div>
</li>
<li class="li1">
<div class="de1">add_action<span class="br0">&#40;</span><span class="st0">&#8216;register_form&#8217;</span>, <span class="st0">&#8216;ajouterChamps&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// execute la fonction sauverChamps à l&#8217;action :</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// do_action(&#8216;user_register&#8217;, $user_id); &nbsp; à la page registration.php à la ligne 137 lors de l&#8217;appel de la fonction wp_insert_user</span></div>
</li>
<li class="li2">
<div class="de2">add_action<span class="br0">&#40;</span><span class="st0">&#8216;user_register&#8217;</span>, <span class="st0">&#8216;sauverChamps&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Vous pouvez consulter la liste des hooks :<br class="spacer_" /></p>
<p><a href="http://wphooks.flatearth.org/" target="_blank">http://codex.wordpress.org/Plugin_API/Action_Reference</a></p>
<p><a href="http://wphooks.flatearth.org/" target="_blank">WP Hooks List</a></p>
<p><br class="spacer_" /></p>
<p>Télécharger le plugin :<br class="spacer_" /></p>
<p><a href="http://www.wareteam.com/wp-content/uploads/2009/12/myfirstpluginphp.txt">Télécharger le code source de : mon premier plugin</a></p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wareteam.com/mon-premier-plugin-wordpress/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
