Problèmatique
Le problème est simple : trouver les articles ayant des mots-clef communs avec l’article de la page courante, en les triant en fonction du nombre de mots-clef communs.
Exemple
- L’article de la page courante est associé aux mots 2,3,4.
- L’article x est associé aux mots 3,4
- L’article y est associé aux mots 1,4.
Nous souhaitons afficher les articles x et y, triés dans cet ordre, car :
- x a deux mots-clef communs avec l’article principal.
- y a un mot-clef commun avec l’article principal.
Mise en œuvre
Contrairement au précédent article, pas de PHP à manipuler. En revanche, on utilisera le plugin Plugin « Critère mots
».
Commençons par remplir un tableau #GET
avec la liste des mots-clefs associés à l’article courant.
#SET{mots,#ARRAY}
<BOUCLE_mot(MOTS){id_article}>
#SET{mots,#GET{mots}|push{#ID_MOT}}
</BOUCLE_mot>
On consultera la documentation de #ARRAY
pour plus de détails.
Créons maintenant la boucle des articles connexes :
<B_connexes>
Articles connexes :
<ul>
<BOUCLE_connexes(ARTICLES){id_article!=#ID_ARTICLE}{mots 1 #GET{mots} !tri}{0,5}>
<li>#TITRE</li>
</BOUCLE_connexes>
</ul>
</B_connexes>
Commentaire des différents critères :
-
{id_article!=#ID_ARTICLE}
: nous ne voulons pas reprendre l’article principal. -
{mots 1 #GET{mots} !tri}
: nous souhaitons :- récupérer les articles avec au moins 1 mot dans le tableau
#GET{mots}
, - trier en fonction du nombre de mots qui :
- sont associés à chaque article ;
- sont présents dans
#GET{mots}
.
- en mettant d’abord les articles avec le plus de mots associés (
!tri
).
- récupérer les articles avec au moins 1 mot dans le tableau
-
{0,5}
: nous limitons à 5 articles connexes seulement.
Et voilà !
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |