R.A. Forum

Accueil > Vie du site > Comment trier les mots-clés avec les balises multi ?

Comment trier les mots-clés avec les balises multi ?

Le but est d’afficher, pour chaque groupe de mots-clés, son titre et la liste des mots-clés triés qui lui sont rattachés ; pour ces derniers, on veut pouvoir faire un lien avec une page « mots-clés » contenant tous les articles liés à ce mot-clé. Mais, comme nous utilisons des balises <multi>, il ne nous est pas possible d’utiliser le tri classique disponible dans les boucles (par titre).

De plus, les caractères particuliers des différentes langues posent problème au niveau d’un tri alphabétique : nous devons donc associer à tout cela la "translittération" fournie par SPIP (voir plus bas).

Voici donc le code qui marche bien (mais qui pourrait certainement être réécrit plus proprement !

Nous utiliserons donc 2 boucles imbriquées :

  • 1- la boucle « groupes de mots » permet de stocker le nom du groupe dans une variable qui sera utilisé un peu plus tard ;
  • 2- la boucle « mots » va rechercher tous les mots-clés liés à ce groupe (remarque : on aurait pu travailler sur la seule boucle mots et utiliser la zone `creagh_raforum`.spip_mots_type qui contient le nom du groupe ; malheureusement, cette zone est une clé de 100 caractères maximum, et certaines chaînes multilangues ont été tronquées)
    Pour chacun des mots-clés, on crée une rangée d’un tableau de 5 champs :
    - Le nom de groupe (depuis la variable stockée dans la boucle « groupes de mots » : on applique les filtres |translitteration|texte_script ; la "translittération" permet de rapprocher les caractères de même type pour le tri, le "texte_script" permettant, principalement, de rajouter un "\" aux guillemets, apostrophes... Ce champ servira pour le tri
    - Le même mais sans la translittération, qui servira pour l’affichage
    - Le nom du mot-clé avec translittération
    - Le même pour l’affichage
    - Son URL

Ensuite, nous allons travailler ces 5 niveaux, après avoir trié les niveaux 1 et 3 :
- Niveaux 1 et 2 : on affiche le nom du groupe de mots
- Niveaux 2, 3 et 4 : on affiche le nom du groupe et son URL

Pour la partie "translittération", il faudra ajouter ce bout de code dans squelettes/mes_fonctions.php : include_ecrire('inc_charsets.php') et rajouter ce fichier dans /ecrire (garder un exemplaire sous la main car /ecrire sera écrasé à chaque mise à jour.

Cette méthode est utilisée à plusieurs endroits :
- Dans la page des mots-clés : http://raforum.info/spip.php?page=mots
- Dans la page du dictionnaire des personnes (mots-clés particuliers) : http://raforum.info/spip.php?page=whoiswho
- Une boucle simplifiée dans la page mot-clé (ou personne) et qui n’affiche que les mots-clés « frères » ; ex : http://raforum.info/spip.php?mot65


Mis en ligne par : JMB

Pour citer cet article :
Comment trier les mots-clés avec les balises multi ?,
Dernières modifications : 24 novembre 2008. [En ligne].
https://raforum.info/spip.php?article1419
[Consulté le 23 juillet 2017]



[ telecharger pdf]


* aide à la recherche