<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.opinionz.be/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Opinionz mais en blog - Balise - tags</title>
  <link>http://www.opinionz.be/blog/</link>
  <atom:link href="http://www.opinionz.be/blog/feed/tag/tags/rss2" rel="self" type="application/rss+xml"/>
  <description>Opinionz est à la vie ce que le mérou est à la mer.</description>
  <language>fr</language>
  <pubDate>Mon, 06 Feb 2012 17:11:56 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>DotClear : le plugin Billets Connexes complète le plugin Tags</title>
    <link>http://www.opinionz.be/blog/post/2005/12/08/527-dotclear-le-plugin-billets-connexes-complete-le-plugin-tags</link>
    <guid isPermaLink="false">urn:md5:c1faadc9a1b6c27a994fc294169021f6</guid>
    <pubDate>Thu, 08 Dec 2005 00:45:00 +0000</pubDate>
    <dc:creator>Benjamin</dc:creator>
        <category>DotClear</category>
        <category>DotClear</category><category>plugin</category><category>tags</category>    
    <description>&lt;p&gt;Non pas que j'oublie le plugin &lt;a href=&quot;http://www.opinionz.be/blog/2005/03/01/279-dotclear-plugin-nombre-de-lectures-disponible&quot;&gt;Nombre de Lectures&lt;/a&gt;, mais je l'ai mis sur pause pour un temps quand une idée fulgurante m'a traversé l'esprit. Bon d'accord, l'idée n'était pas neuve mais je n'avais jusqu'alors pas la possibilité de la réaliser. Jusqu'au jour où je tombe sur le plugin &lt;a href=&quot;http://tw.apinc.org/weblog/2005/08/13#twtags-021-pour-dotclear&quot;&gt;Tags&lt;/a&gt; (se basant lui-même sur le plugin &lt;a href=&quot;http://tw.apinc.org/weblog/2005/07/09#dotclear-metadonnees&quot;&gt;Métadonnées de billet&lt;/a&gt;) qui permet d'assigner des mots-clés à chacun des billets.&lt;/p&gt;    &lt;h3&gt;Présentation&lt;/h3&gt;


&lt;p&gt;Cette idée qui me trotte dans la tête vient donc de voir le jour&amp;nbsp;: il est désormais possible d'afficher une liste de billets connexes à un billet source. Super&amp;nbsp;! Oui en effet. Le principe est simple&amp;nbsp;: on récupère les mots-clés du billet source et on les compare à ceux de la base de données à la recherche d'autres billets. Facile, sympa, sexy.&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;C'est la classe&lt;/h3&gt;


&lt;p&gt;Oui on peut le dire, c'est de la POO. Mais là n'est pas la question. Point suivant.&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;En pratique&lt;/h3&gt;


&lt;p&gt;Le plugin est utilisable dans le fichier &lt;strong&gt;post&lt;/strong&gt; de votre template, mais aussi dans la sidebar ou dans les pages utilisant le plugin &lt;strong&gt;Related&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;Voici trois exemples d'utilisation de la classe&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;geshi php
&amp;lt;?php
/**
pertinence de 2 mots-clés, pas de limite, id auto et clé de tri définie
*/
$bc = new dcBilletsConnexes(2,0,0,'´post_dt´ ASC');
/**
tous les paramètres par défaut
*/
$bc-&amp;gt;show();
?&amp;gt;

&amp;lt;?php
/**
pertinence de 1 mot-clé, 5 résultats maximum, id auto et classement par défaut
*/
$bc = new dcBilletsConnexes(1,5);
/**
personnalisation du bloc et du titre, formatage par défaut des éléments de la liste
et séparation des mots-clés avec '/'
*/
$bc-&amp;gt;show('&amp;lt;div&amp;gt;%1$s&amp;lt;ul&amp;gt;%2$s&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;',
	'&amp;lt;h3&amp;gt;Billet(s) connexe(s)&amp;lt;/h3&amp;gt;','*',', ');
?&amp;gt;

&amp;lt;?php
/**
pertinence de 3 mots-clés, pas de limite de résultat, id du billet source spécifié,
classement par défaut
*/
$bc = new dcBilletsConnexes(3,0,53);
/**
bloc et titre par défaut, formatage personnalisé des éléments de la liste
et séparation des mots-clés par défaut
*/
$bc-&amp;gt;show('*','*','&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;%2$s&amp;quot; title=&amp;quot;Mot(s)-clé(s) : %3$s&amp;quot;&amp;gt;%1$s&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');
?&amp;gt;

&lt;/pre&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Explication&lt;/h3&gt;


&lt;p&gt;&lt;strong&gt;Instanciation&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Lors de l'instanciation de la classe, il est possible de définir 4 paramètres&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;niveau&amp;nbsp;: nombre qui définit le nombre de mots-clés minimum à avoir en commun avec le billet source&lt;/li&gt;
&lt;li&gt;limite&amp;nbsp;: nombre de résultats maximum à afficher, utile si vous avez 7000 billets connexes&lt;/li&gt;
&lt;li&gt;id&amp;nbsp;: le système est malin, il récupère l'id du billet source tout seul, mais il est aussi possible de lui donner&lt;/li&gt;
&lt;li&gt;ordre&amp;nbsp;: clé de tri des résultats (pour classer les billets par date, par nom et toutes ces choses)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ces paramètres sont tous optionnels et gardent alors leurs valeurs par défaut qui sont respectivement&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 (un seul mot-clé à avoir en commun, augmenter pour affiner les résultats)&lt;/li&gt;
&lt;li&gt;0 (mettre zéro pour aucune limite, sinon mettre ce que bon vous semble)&lt;/li&gt;
&lt;li&gt;0 (par défaut, à zéro donc, l'id est récupéré de façon automatique)&lt;/li&gt;
&lt;li&gt;'`post_dt` DESC' (le classement par défaut est par date, du plus récent ou plus vieux)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Affichage des résultats&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;La méthode &lt;strong&gt;show&lt;/strong&gt; accepte elle-aussi 4 paramètres&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bloc&amp;nbsp;: chaîne de formatage du bloc à afficher sur le blog&lt;/li&gt;
&lt;li&gt;titre&amp;nbsp;: titre du bloc (avec gestion intelligente du pluriel)&lt;/li&gt;
&lt;li&gt;item&amp;nbsp;: chaîne de formatage des éléments de la liste&lt;/li&gt;
&lt;li&gt;séparateur&amp;nbsp;: définit le séparateur des tags pour l'affichage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ces paramètres sont aussi tous optionnels, vous pouvez voir les valeurs par défaut dans l'exemple vu plus haut.&lt;/p&gt;


&lt;p&gt;La chaîne bloc reçoit deux valeurs&amp;nbsp;: le titre du bloc et les éléments de la liste&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;geshi html4strict
&amp;lt;div class=&amp;quot;billets-connexes&amp;quot;&amp;gt;%1$s&amp;lt;ul&amp;gt;%2$s&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;
&lt;/pre&gt;


&lt;p&gt;La chaîne des éléments de la liste reçoit quant à elle le titre du billet, son url et les mots-clés récupérés&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;geshi html4strict
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;%2$s&amp;quot; title=&amp;quot;Mot(s)-clé(s) : %3$s&amp;quot;&amp;gt;%1$s&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&lt;/pre&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Gestion des pluriels&lt;/h3&gt;


&lt;p&gt;Le titre du bloc et la balise &lt;em&gt;title&lt;/em&gt; des liens dans les résultats gèrent leur pluriel de façon intelligente. En effet, si vous utilisez &quot;Billet(s) Connexe(s)&quot; ou 'Mot(s)-clé(s)&quot;, la classe affichera automatiquement le sigulier ou le pluriel suivant le nombre de résultats. Stupéfiant&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Pour les pluriels complexes, ça marche aussi&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;em&gt;&quot;Voici (une|des) beau(x) soulier(s) pour l'oncle Henri !&quot;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Personnalisation&lt;/h3&gt;


&lt;p&gt;Si l'envie vous prend de vouloir récupérer les résultats sans affichage, la méthode &lt;strong&gt;getinfo&lt;/strong&gt; est là pour vous.&lt;/p&gt;


&lt;p&gt;Ainsi, avec le code suivant&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;geshi php
&amp;lt;?php
$bc = new dcBilletsConnexes(2);
$billets = $bc-&amp;gt;getinfo();
?&amp;gt;
&lt;/pre&gt;


&lt;p&gt;On récupère les données sous la forme d'un tableau associatif et on peut alors traiter les infos comme on veut.&lt;/p&gt;


&lt;p&gt;L'id des billets est utilisé comme index, le titre, l'url et les tags sont donc utilisables comme ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;geshi php
&amp;lt;?php
/**
suite du code vu juste avant donc
*/
foreach ($billets as $id =&amp;gt; $billet)
{
	echo '&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;'.$billet['url'].'&amp;quot; title=&amp;quot;'.$billet['tags'].'&amp;quot;&amp;gt;'.$billet['titre'].'&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;';
}
?&amp;gt;
&lt;/pre&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Installation&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pour l'installateur et l'archive, direction le &lt;a href=&quot;http://www.opinionz.be/blog/public/share/billets-connexes/&quot;&gt;grenier&lt;/a&gt; &lt;img src=&quot;/blog/themes/opinionz/smilies/big/note.gif&quot; alt=&quot;:note:&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://www.opinionz.be/blog/post/2005/12/08/527-dotclear-le-plugin-billets-connexes-complete-le-plugin-tags#comment-form</comments>
      <wfw:comment>http://www.opinionz.be/blog/post/2005/12/08/527-dotclear-le-plugin-billets-connexes-complete-le-plugin-tags#comment-form</wfw:comment>
      <wfw:commentRss>http://www.opinionz.be/blog/feed/atom/comments/519</wfw:commentRss>
      </item>
    
</channel>
</rss>
