SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 226 visiteurs en ce moment

Accueil > Navigation > Tris conditionnels > Mots-clés dans intervalles > Mots-clés (ou autres objets) dans des intervalles

Mots-clés (ou autres objets) dans des intervalles

31 janvier 2007 – par claudeD

Attention, ne fonctionne pas en Spip 3 !

En effet, en Spip 3, les critères <, >, <= ou >= ne fonctionnent plus avec titre_mot (même s’ils fonctionnent encore avec titre).

La problèmatique

Voici un tableau qui représente 5 classes d’une école. Je pointe l’âge le plus bas et l’âge le plus haut de chaque classe pour connaitre les tranches d’âge de chaque classe. On voit que la pour 1re classe, les élèves ont tous 7 ans et que les autres classes comprennent des élèves de plusieurs âges.

âges 5 6 7 8 9 10
1re classe 7
2e classe 7 9
3e classe 5 7
4e classe 6 9
5e classe 8 10

Un ministère, propose une action ou un examen pour tous les élèves de 7 ans, quel que soit leur niveau. Je recherche donc les classes ayant des élèves âgés de 7 ans pour discuter avec leurs enseignants. Si j’utilise ma grille ci-dessus et que j’appelle le mot-clé « 7 », je vais obtenir pour résultat les objets (article, brève, rubrique...) 1re classe, 2e classe, 3e classe. Je ne vais pas avoir la 5e classe, ce qui est normal. Le problème est que je ne vais pas non plus avoir la 4e classe qui comporte peut-être aussi des élèves âgés de 7 ans.

Avec cette contribution, je propose de retrouver les objets (ici des articles) dont des mots-clés entourent une valeur donnée. Ici cette valeur est un mot-clé du même groupe, mais on pourrait aussi fournir une valeur par un formulaire ou autre.

Ma liste de mots-clés peut, par exemple, être des limites d’âge, des ordres de hauteur d’une plante (de 50 cm à 80 cm), des limites de normes (analyses de sang), des limites de tolérance au calcaire ou à l’acidité (exemple développé ci-dessous). Je pourrais aussi saisir toutes les valeurs intermédiaires entre les bornes mais c’est un peu longuet au bout d’un moment, donc je peux l’éviter si je suis certain que les valeurs sont continues. Outre des valeurs, il peut s’agir de mots classés alphabétiquement et trouver que « cassis » est dans la page « brugnon-cassoulet ». L’utilisation potentielle est large.

L’exemple

Pour l’un des mes groupes de mots-clés, j’ai eu envie de classer mes articles par plages de valeurs compatibles avec une valeur choisie.

Ici, Il s’agit du potentiel Hydrogène (échelle logarithmique de tolérance à l’acidité ou à la basicité du sol). Donc mes plantes (mes articles) ont une limite basse et une limite haute. Ces limites sont des mots-clés rassemblés dans un même groupe. Un article peut avoir 0 (pas de données disponibles), 1 (besoin de pH très pointu ou... lacunaire) ou 2 mots-clés (les limites idéales basse et haute).

Dans la recherche par mot-clé, si je choisis la valeur « 4,5 », je n’aurais pas les articles sans mots-clés de ce groupe, mais j’aurais les articles ayant le mot-clé « 4,5 ». Çà ne me satisfait pas car je veux aussi les plantes (articles) dont la plage pH comprend la valeur « 4,5 » même si aucune des valeurs limites de cette plage n’est le mot-clé « 4,5 ». Plus concrètement, je souhaite que le bleuet qui a une plage de préférence de pH 4 à pH 7 apparaisse dans cette page. En effet, « 4,5 » est supérieur à « 4 » et inférieur à « 7 ».

Avec ma boucle, je peux obtenir cette page d’exemple qui va bien.

Une contrainte : saisir les mots-clés dans un ordre croissant de valeur (4 ; 4,5 ; 5 ; 5,5 ; 6 ; 6,5 ; 7…). et non pas en désordre (4,5 ; 6 ; 7 ; 5,5 ; 4…). Ces valeurs peuvent être numériques comme alphabétiques puisque l’on utilise l’ordre des id_mot pour trier. Le but est que l’ordre des id_mot du groupe corresponde à l’ordre désiré des mots-clés. Une variante plus souple (sic) est proposée plus loin.

Dans l’exemple, je pars d’une page « mot.html » (dont la boucle principale se nomme BOUCLE_mot_principal en général) et je travaille sur le groupe 46 des mes mots-clés. Je remplace la boucle d’affichage par celle-ci :

Les boucles sont bien espacées pour la lisibilité. À l’usage, il vous faudra certainement en recoller certaines, notamment celles à l’intérieur de BOUCLE_ph_haut pour éviter des effets de bord.

Explications

BOUCLE_ph_bas : Je sélectionne tous les articles qui ont un id_mot — dans ce groupe — inférieur ou égal à l’id_mot de ma page (avec doublons A).

BOUCLE_ph_hors : Avec doublons A, je sélectionne tous les autres articles et les renomme doublons B. Cela me permettra de réutiliser la sélection de la première boucle.

BOUCLE_ph_haut : Je sélectionne tous les articles qui ont un id_mot dans ce groupe qui est supérieur ou égal à l’id_mot de ma page. Ils avaient déjà étaient sélectionnés dans la première boucle comme ayant leur ou l’un de leurs mots-clés du groupe ayant un id inférieur à celui de la page. Pour les articles ayant deux mots-clés de ce groupe (la généralité), l’un de ceux-ci à une id inférieur ou égale à l’id de ma page, et l’autre mot à une id supérieur ou égale à l’id de la page. J’ai donc bien les articles ayant des mots du groupe de même id que la page OU qui ont des id encadrantes la valeur de l’id de la page : « id_mot bas <= id_mot de la page <= id_mot haut ». S’il n’y a qu’un mot, il suffit que ce soit celui de la page en cours (ici « 4,5 » [1]).

BOUCLE_ph_1 : J’affiche le premier — dans l’ordre des titres, donc dans l’ordre des id — des mots-clés du groupe 46 pour chaque article.

BOUCLE_ph_2 : J’affiche le dernier — dans le même ordre — des mots-clés de ce groupe pour chaque même article.


Une variante avec le titre du mot-clé

Cette boucle permet d’éviter la contrainte de saisir des mots-clés dans un certain ordre… et donc de ne plus pouvoir modifier ce groupe et de continuer à utiliser la contrib.

J’utilise des dérivées de cette boucle pour classer des hauteurs : « quels sont les végétaux qui peuvent mesurer 5 mètres [ou 20 centimètres] ? » ou aussi « quelles sont les plantes qui mesurent au minimum [ou au maximum] 20 centimètres de haut ? ». L’astérisque est ici utilisée (dans TITRE*) pour utiliser la saisie de type « 000253. Titre du mot » [2].

Il faut alors faire attention à ce que la numérotation soit différente entre les groupes de mots. Utiliser : 01. Mot dans un groupe et 001. Mot dans un autre, etc. ; sinon ces deux mots seront équivalents. Le « titre_mot » ne peut être réduit à un groupe et la boucle va donc chercher tous les mots de même titre. D’autres astuces sont aussi possibles.

Voir en ligne : Un exemple de page avec cette contribution

P.-S.

Attention ! Si vous utilisez cette contrib sur le squelette mot.html, tous vos mots-clés de tous leurs groupes vont l’utiliser.

Il vous faut donc soit créer un fichier spécialisé pour gérer les mots de ce groupe soit utiliser au moins la première partie de la contrib suivante Squelettes pour groupes et par groupes de mots. Celà vous donnera des squelettes mots-clés qui pourront être différents selon les groupes de mots-clés.

Notes

[1Mais il affichera « pH 4,5 à 4,5 » avec les boucles suivantes.

[2C’est aussi cette saisie qui permet d’utiliser le critère {par num titre} .

Dernière modification de cette page le 12 septembre 2014

Retour en haut de la page

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Adaptive Images

    15 novembre 2013 – 69 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • Social tags

    8 septembre 2008 – 428 commentaires

    Le plugin Social Tags permet d’ajouter des icônes de partage de liens vers les sites tels que Digg, Facebook, Delicious.... Une fois le plugin installé et activé (voir doc.), le choix des sites se fait via un menu de configuration. Insertion (...)

  • Module de Paiement Stripe

    17 octobre – commentaires

    Stripe est un prestataire de paiement externe https://stripe.com/fr qui propose une API moderne et une interface de paiement extrêmement conviviale et efficace. Ce module permet les paiements à l’acte et les paiement récurrents. Configuration (...)

  • Métas

    8 août 2009 – 50 commentaires

    Ce petit plugin permet l’ajout, depuis l’espace privé, de metatags aux articles et rubriques de SPIP, ainsi que la mise en exergue de mots importants.

Ça spipe par là