boucle MOT avec critère d'un mot clef Exclusif

Bonjour, je développe mon site sous spip (différentes versions depuis 2005 !) et me débrouille unpeu ais n’ai pas vos connaissances de spécialistes. J’utilise les mots clefs pour une naviagation transversale, et je souahaiterai savoir quelle syntaxe utiliser pour affiches les articles d’un mot clef (jusqu’ici rien de bien compliqué) et seulement ceux qui ont UNIQUEMENT ce mots clef (c’est à dire en excluant ceux qui ont plusieurs mots clefs dont celui appelé). Par exemple uniquement les articles avec le mot clef 1, et pas ceux qui ont le mots clef 1 et 2, 1 et 3, 1, 4 et 5.

Merci!

Bonjour

en utilisant le critère {doublons} je pense.

  • Une première boucle qui cherche tous les articles n’ayant pas le mot clef 1 en les marquants comme doublons.
  • Dans la seconde boucle chercher les articles qui ont le mot clef1 avec le critère doublons pour exclure les précédents.

François-Marie

···

https://www.spip.net/fr_article4139.html

Le 11/09/2022 à 00:26, didier_caillou via Discuter de SPIP a écrit :

didier_caillou
Septembre 10

Bonjour, je développe mon site sous spip (différentes versions depuis 2005 !) et me débrouille unpeu ais n’ai pas vos connaissances de spécialistes. J’utilise les mots clefs pour une naviagation transversale, et je souahaiterai savoir quelle syntaxe utiliser pour affiches les articles d’un mot clef (jusqu’ici rien de bien compliqué) et seulement ceux qui ont UNIQUEMENT ce mots clef (c’est à dire en excluant ceux qui ont plusieurs mots clefs dont celui appelé). Par exemple uniquement les articles avec le mot clef 1, et pas ceux qui ont le mots clef 1 et 2, 1 et 3, 1, 4 et 5.

Merci!


Voir le sujet ou répondre à ce courriel pour répondre.

Pour vous désabonner de ces courriels, cliquez ici.

Bonjour François-Marie, et merci de de ton temps de réflexion.
Avec cette technique, si je prend un exemple, l’article 1 qui a les mots clefs A et B associés, ne sera pas considéré comme « doublons » avec la première boucle, puisqu’avec le mot clef A. Cet article 1 sera donc affiché par la seconde boucle, qui trouvera bien le mot clef A (ainsi que le B).
ce que je souhaite c’est que dans le cas où l’article 1 contient les mots clefs A et B, l’article 2 contient uniquement le mot clef A, et l’article 3 contient les mots clefs A et C, alors une boucle me permette d’afficher uniquement l’article 2 (sans les articles 1 et 3, puisque contenant d’autres mots clef.)

en effet .

alors peut-être en passant par une boucle MOT sur {id_article] qui doit permettre de déterminer s’il trouve le bon mot clef #ID_MOT et s’il n’y a qu’un mot clef avec un test sur #TOTAL_BOUCLE.

Auquel cas il faudra afficher cet article.

Cordialement

···

Le 11/09/2022 à 17:36, didier_caillou via Discuter de SPIP a écrit :

didier_caillou
Septembre 11

Bonjour François-Marie, et merci de de ton temps de réflexion.
Avec cette technique, si je prend un exemple, l’article 1 qui a les mots clefs A et B associés, ne sera pas considéré comme « doublons » avec la première boucle, puisqu’avec le mot clef A. Cet article 1 sera donc affiché par la seconde boucle, qui trouvera bien le mot clef A (ainsi que le B).
ce que je souhaite c’est que dans le cas où l’article 1 contient les mots clefs A et B, l’article 2 contient uniquement le mot clef A, et l’article 3 contient les mots clefs A et C, alors une boucle me permette d’afficher uniquement l’article 2 (sans les articles 1 et 3, puisque contenant d’autres mots clef.)


Voir le sujet ou répondre à ce courriel pour répondre.

Pour vous désabonner de ces courriels, cliquez ici.

Si j’ai bien compris et si l’on veut résumer, tu souhaites n’afficher les articles n’ayant qu’un seul mot clé ?

oui !!!
c’est tout simplement ça!

Alors j’aurais fait un truc comme ça :

[(REM) On cherche tous articles qui ont des mots clés]
<BOUCLE_trouver_article_avec_mots_cles(ARTICLES spip_mots_liens){spip_mots_liens.objet=article}>

  [(REM) On vérifie s'il y a plus que 1 mot]
  <BOUCLE_plus_de_un_mot_cle(MOTS){id_article}{1,n}> </BOUCLE_plus_de_un_mot_cle>
  [(REM) Si oui, il ne se passe rien]

  [(REM) Si non, c'est qu'on a un seul mot clé]
  Article ayant 1 seul mot clé : #TITRE
  <//B_plus_de_un_mot_cle>
</BOUCLE_trouver_article_avec_mots_cles>

Voilà

Pour faire simple tu peux essayer le critère {compteur_xxx} du plugin Bonux : https://contrib.spip.net/Le-critere-compteur-de-Bonux.

Ça donnerait en théorie quelque chose comme ça (mettre ton id_mot à toi bien sûr) :

<BOUCLE_art(ARTICLES)
    {id_mot = 1}
    {compteur mots}
    {compteur_mots = 1}
>

Attention, je dis bien en théorie :slight_smile: !
Je ne sais pas si {compteur_mots} peut s’utiliser avec un opérateur à la suite, à tester donc.
Et oui, entre les 2 critères la différence avec et sans souligné _ est voulue.

Euh et sinon assez simplement aussi, en corrigeant la piste des {doublons} :

  • collecter les articles à exclure :
    <BOUCLE_exclure(ARTICLES){id_mot!=1}{doublons}>
  • et retenir les articles voulus parmi ceux qui restent :
    <BOUCLE_retenir(ARTICLES){id_mot=1}{doublons}>

Rq : {id_mot!=1} = il faut un mot différent de 1
tandis que {!id_mot=1} = le mot 1 est interdit.

Et la réponse est… non.

Donc prendre la solution à base d’anti-doublon.