Lister uniquement les mots-clés ayant au moins un article attribué

Frameworks
Catégorie

| par Teddy Payet

Dans les squelettes par défaut de SPIP, sur la page mot, nous avons la liste des mots-clés du même groupe que le mot-clé de la présente page, les mots frères :

<B_mots_freres>
<div class="menu">
   #ANCRE_PAGINATION
   <h2><:mots_clefs_meme_groupe:></h2>
   <ul>
   <BOUCLE_mots_freres(MOTS) {type} {par titre} {pagination 20}>
     <li><a href="#URL_MOT"[ class="(#EXPOSE)"]>#TITRE</a></li>
   </BOUCLE_mots_freres>
   </ul>
   [<p class="pagination">(#PAGINATION)</p>]
 </div>
</B_mots_freres>


http://core.spip.org/projects/spip/repository/entry/branches/spip-2.1/squelettes-dist/mot.html#L115

Malheureusement, les mots-clés n’ayant pas d’articles attribués sont aussi affichés dans cette liste. Pour diverses raisons, on peut désirer ne pas les avoir. Voici comment faire.

Il faut réaliser une jointure entre la table mots et mots_articles pour dire que je désire uniquement les mots-clés ayant un identifiant id_article supérieur à "0". Ce chiffre "0" veut dire que le mot-clé n’a pas d’article attribué.
Et voici le même code reprenant ce principe de jointure :

<B_mots_freres>
 <div class="menu">
   #ANCRE_PAGINATION
   <h2><:mots_clefs_meme_groupe:></h2>
   <ul>
   <BOUCLE_mots_freres(MOTS mots_articles) {id_article>0} {type} {par titre} {pagination 20}>
     <li><a href="#URL_MOT"[ class="(#EXPOSE)"]>#TITRE</a></li>
   </BOUCLE_mots_freres>
   </ul>
   [<p class="pagination">(#PAGINATION)</p>]
 </div>
</B_mots_freres>

mots_articles doit être écrit en minuscule pour que cela bien pris en compte.