Comment personnaliser l'ordre des tags

Bonjour.

J’essaie d’effectuer un tri personnalisé des balises de sujet par la valeur du nom de leur groupe de balises.

J’ai examiné les composants de thème et je pense que c’est la bonne approche, mais j’aimerais avoir votre avis ainsi que quelques conseils, car ce serait mon premier composant de thème.

Cordialement.

3 « J'aime »

J’ai fini par utiliser le champ de description de la balise pour stocker un entier afin de simuler l’ordre que je souhaitais. Le problème est que le groupe de balises n’est pas exposé dans la structure de la balise ni dans le DOM, c’est pourquoi j’ai utilisé cette méthode.

Ensuite, en utilisant un extrait de code d’en-tête de l’éditeur de thème, j’ai injecté le script suivant dans le DOM.

Cela m’a permis de réorganiser les balises dynamiquement. Bien que ce soit une “astuce” pour le moment, au moins ça fonctionne.

<script type="text/discourse-plugin" version="0.8">
  api.addTagsHtmlCallback(function(topic, params) {
    const containers = document.querySelectorAll(".discourse-tags");
    for (const container of containers) {
      const children = Array.from(container.children);

      children.sort((a, b) => {
        const orderA = parseInt(a.getAttribute("title"));
        const orderB = parseInt(b.getAttribute("title"));
        return orderA - orderB;
      });

      children.forEach(child => container.appendChild(child));
    }
  }, {priority: 100});
</script>