<?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>Autre-Chose &#187; Plugiciel</title>
	<atom:link href="http://blog.autre-chose.org/tag/plugiciel/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.autre-chose.org</link>
	<description>-- Parce que vous êtes libres</description>
	<lastBuildDate>Mon, 29 Nov 2010 17:16:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<cloud domain='blog.autre-chose.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
	<atom:link rel="hub" href="http://superfeedr.com/hubbub" />
			<item>
		<title>Plugiciel WordPress &#8211; Blogue parallèle</title>
		<link>http://blog.autre-chose.org/2006/04/25/plugiciel-wordpress-blogue-parallele?utm_source=subscriber&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://blog.autre-chose.org/2006/04/25/plugiciel-wordpress-blogue-parallele#comments</comments>
		<pubDate>Wed, 26 Apr 2006 04:47:21 +0000</pubDate>
		<dc:creator>mdupuis</dc:creator>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugiciel]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://localhost/~mdupuis/blog/?p=116</guid>
		<description><![CDATA[Décidément, j&#8217;aime le terme &#8220;blogue parallèle&#8221;. Voilà maintenant 2 jours que j&#8217;ai installé le miens, mais dans lequel je n&#8217;écrivais rien pour quelques raisons. Je me suis servi comme plugiciel de base celui confectionné par Kates Gasis, mais trouvais qu&#8217;il y avait quelques défauts/manques. Je sais que l&#8217;auteure demande qu&#8217;on lui soumette des suggestions, mais [...]]]></description>
			<content:encoded><![CDATA[<p>Décidément, j&#8217;aime le terme &#8220;blogue parallèle&#8221;. Voilà maintenant 2 jours que j&#8217;ai installé le miens, mais dans lequel je n&#8217;écrivais rien pour quelques raisons. Je me suis servi comme <a href="http://katesgasis.com/2005/10/24/sideblog/">plugiciel de base</a> celui confectionné par <a href="http://katesgasis.com/">Kates Gasis</a>, mais trouvais qu&#8217;il y avait quelques défauts/manques. Je sais que l&#8217;auteure demande qu&#8217;on lui soumette des suggestions, mais mon manque de temps et (oh merci société d&#8217;aujourd&#8217;hui) ma soif d&#8217;avoir instantanément on fait que j&#8217;ai pris quelques heures de mon temps pour fixer ce que j&#8217;avais besoin.<span id="more-116"></span></p>
<p>D&#8217;abord, le plugiciel original ne permettait que d&#8217;afficher les titres des billets avec leur contenu et la possibilité d&#8217;afficher un lien menant à l&#8217;article. Comme je ne voulais pas avoir le contenu et seulement le lien vers les billets en tant que tel, j&#8217;ai dû modifier.</p>
<p>Ensuite, comme je trouvais que les billets que le blogue parallèle allait contenir ne seraient pas nécessaires ni très pertinant à ceux qui <a href="http://yansanmo.no-ip.org/">prennent mon fil rss</a> (désolé Yan, t&#8217;es le seul que je connaisse), j&#8217;ai décidé de ne pas inclure ces billets dans mes fils RSS et ATOM. Vu le manque de documentation auquel j&#8217;ai dû faire face, voici comment j&#8217;ai procédé :</p>
<p>Tout le monde programmant des plugiciels pour WordPress le sait, ce dernier permet d&#8217;étendre ses fonctionnalités à l&#8217;aide de &#8220;hooks&#8221;. D&#8217;abord je me suis dit d&#8217;aller voir <a href="http://wphooks.flatearth.org/">le site que j&#8217;ai trouvé jadis</a> où beaucoup de ces hooks sont décris. À mon grand regret, après plusieurs minutes, je n&#8217;ai pus trouver de hook qui serait utile pour accomplir ma tâche.</p>
<p>J&#8217;ai donc été fouiller dans les différents fichiers sources de WordPress afin de pouvoir mieux me renseigner, mais en vain. Puis, j&#8217;ai regardé attentivement la source d&#8217;un autre plugiciel pour m&#8217;apercevoir que celui-ci utilisait le hook &#8216;posts_where&#8217; afin de masquer certains billets sous certaines conditions. J&#8217;ai donc joué avec ce hook jusqu&#8217;à ce que j&#8217;aboutisse.</p>
<p>Voici le code :</p>
<pre>
function sideblog_where($query) {
	global $cat_to_hide, $show_in_feed, $wpdb;

	$now = current_time('mysql');
	if(is_home()){
		return $query . " AND category_id &lt;&gt; " . $cat_to_hide . ' ';
	}
	if(!$show_in_feed &amp;&amp; is_feed()){
		return $query . " AND ID NOT IN (SELECT post_id FROM $wpdb-&gt;post2cat WHERE category_id = $cat_to_hide)";
	}
	return $query;
}

add_filter('posts_where','sideblog_where',10);</pre>
<p>Explications :</p>
<ul>
<li><em>add_filter</em> permet à WordPress d&#8217;appeler ma fonction &#8220;sideblog_where&#8221; lorsque le hook &#8220;posts_where&#8221; est appelé, soit lorsque WordPress fait une requête de sélection des billets. C&#8217;est par lui que l&#8217;on peut redéfinir la requête SQL depuis &#8220;WHERE&#8221;.</li>
<li><em>sideblog_where()</em> prend un paramètre et le retourne. Ce paramètre, c&#8217;est la requête SQL. C&#8217;est donc ce paramètre en particulier qu&#8217;il faudra modifier à l&#8217;intérieur de notre fonction.</li>
<li><em>if(!$show_in_feed &amp;&amp; is_feed())</em> se divise en deux :
<ol>
<li>si <em>$show_in_feed</em> est <u>équivalent</u> à <em>false</em>, c&#8217;est que j&#8217;ai décidé dans la configuration de mon plugiciel que je ne voulais pas inclure les billets du blogue parallèle dans les fils RSS et ATOM.</li>
<li><em>is_feed()</em> est une fonction de WordPress qui permet de savoir si celui-ci est entrain de générer un fil RSS <u>ou</u> ATOM.</li>
</ol>
<p>Ceci dit, si les 2 conditions sont vraies, il faut modifier notre requête, ce que je fais. Je n&#8217;irai pas expliquer la requête, car je crois que le langage SQL est assez explicite en soi et que là n&#8217;est pas le but de ce billet.</li>
</ul>
<p>Ce n&#8217;était que ça ! Mais encore faut-il le savoir. Maintenant, je le sais et vous aussi ! Peut-être devrais-je contribuer au site ci-haut expliquant les hooks.</p>
<p>Finalement, je distribue les modifications du plugiciel pour votre usage personnel et votre plus grand plaisir ! C&#8217;est par <a href="http://blog.autre-chose.org/projets/php/wordpress/blogue-parallele-plugiciel/">ici</a></p>
 <img src="http://blog.autre-chose.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=116" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.autre-chose.org/2006/04/25/plugiciel-wordpress-blogue-parallele/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

