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`.forum4_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 : https://archives.cira-marseille.info/raforum/spip.php?page=mots
     Dans la page du dictionnaire des personnes (mots-clés particuliers) : https://archives.cira-marseille.info/raforum/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 : https://archives.cira-marseille.info/raforum/spip.php?mot65