Hiérarchie traditionnelle à plusieurs niveaux contre hiérarchie de discours plate

Je peine à convaincre notre organisation d’éviter un retour à un forum traditionnel avec plusieurs niveaux hiérarchiques, ce qui a tendance à se transformer en torture du type « cliquez et fuyez ». Voir Il est temps de parler des tags.

J’ai besoin d’arguments pour démontrer qu’il est tout à fait faisable d’utiliser uniquement les tags, sans avoir à taper quoi que ce soit dans la barre de recherche.

Il serait idéal si les questions suivantes pouvaient recevoir des réponses.

Nous disposons d’un réseau de soutien de nœuds locaux qui se développera à l’échelle mondiale, comparable à la catégorie « Groupes locaux » sur https://discuss.okfn.org. Là-bas, tous les emplacements sont couverts par des sous-catégories. C’est la bonne solution si vous ne descendez pas au niveau de la ville, ce que nous devons faire.

J’ai en tête une structure comme suit :

  1. catégorie : nœuds locaux
  2. tag : continent (à discuter pour savoir si cela a du sens)
  3. sous-catégorie : nation (la nation doit être bien visualisée, c’est pourquoi le continent est un tag)
  4. tag : ville

Existe-t-il une possibilité de naviguer uniquement via les tags, en exploitant la hiérarchie des groupes de tags, par exemple :

  1. en passant de l’Asie au Japon
    1. Continents
    2. Nations
  2. en passant de l’Europe à Rome
    1. Continents
    2. Nations
    3. Villes

Je n’ai pas encore trouvé de moyen de couvrir cela via la barre de navigation. Je n’ai pas non plus trouvé de méthode permettant d’étiqueter automatiquement un sujet avec le nom de sa sous-catégorie et de la catégorie parent de celle-ci pour rendre cela possible.

Je suis conscient des ressources suivantes :

De plus (pour commencer :slight_smile:) :

  1. Comment faire apparaître « Recherche » et quand est-elle affichée dans la recherche de tags ?

  2. Intégrer la recherche de tags dans la recherche de catégorie (je sais qu’il existe une barre de recherche en haut à droite, mais elle liste aussi les sujets).

Enfin, j’aimerais afficher une carte du monde dans la catégorie « nœuds locaux », permettant de zoomer sur l’emplacement d’intérêt.

J’espère pouvoir utiliser la carte visible sur Locations Plugin 🌍, le plugin Data Explorer Discourse Data Explorer et Custom Layouts Plugin, peut-être intégrés dans Discourse Category Banners.

Actuellement, je ne connais que :

Cela devrait ressembler à quelque chose comme ceci :

J’y ai un peu réfléchi. J’ai déjà expérimenté un système de catégories à trois niveaux ainsi que différents systèmes de navigation basés sur des balises.

catégorie : nœuds locaux
balise : continent (il faudra discuter de la pertinence de cette option)
sous-catégorie : nation (la nation doit être bien visualisée, c’est pourquoi le continent est une balise)
balise : ville

Je pense qu’il vous faut essentiellement un menu déroulant de balises spécifique à un groupe de balises, ce groupe étant déterminé par le contexte de la catégorie (pour accommoder différents groupes de villes selon les sous-catégories de nations).

En ce qui concerne l’affichage de cartes ailleurs que dans une liste de sujets ou intégrées dans un message, le plugin Locations propose un composant de carte qui peut être inséré dans une page de catégorie.

Vous pouvez réaliser les deux via un composant de thème. Si vous avez besoin d’aide pour créer un tel composant, je peux vous donner quelques pistes si vous souhaitez essayer vous-même, ou vous pouvez engager Pavilion pour le faire à votre place.

Merci beaucoup pour les retours positifs. Ainsi, tout ce qui concerne la carte pourrait être réalisé par nos soins :smiley: mais nous devrons coder un peu pour personnaliser le thème selon nos préférences.

Pour avoir une idée de la feuille de route permettant de réaliser cela, pouvez-vous confirmer, corriger, compléter ou répondre aux points suivants :

  1. :question: S’assurer qu’il est possible de créer des menus déroulants de tags infinis (limités uniquement par la taille de la page), avec une sélection de tags basée sur le menu déroulant précédent.
    @angus, pouvez-vous confirmer que cela est possible en principe ?
  2. :question: Peut-on fusionner la recherche par catégorie et par tag, comme demandé au point 2 de la dernière (troisième) liste ?
  3. :factory: Établir une hiérarchie de tags comparable à celle présentée dans le message d’origine (OP). C’est la base fondamentale ; sans cela, ce projet est voué à l’échec.
  4. :factory: Introduire le marquage automatique de tags.
    1. :question: :arrow_forward: :factory: Cela ne peut-il être réalisé que via un plugin, comme indiqué dans Marquage automatique des sujets ?
      :arrow_right: Voir Tags : restrictions par catégorie, groupes de tags, relations
  5. :factory: Mettre en œuvre l’amélioration de Locations Plugin 🌍 - #429 :star_struck:

Si nous empruntons cette voie, je répondrai certainement à cette offre généreuse.

Cela est peu probable pour le moment, car notre communauté est sur le point de faire son tout premier pas et nos revenus seront très faibles. De plus, nous sommes une organisation à but non lucratif.

La réponse se trouve ici : Set up structured tagging with tag groups and category tag restrictions

Tout est possible en principe.

Par exemple, j’ai précédemment créé une hiérarchie de catégories à trois niveaux qui prend également en charge les intersections multiples de tags au niveau des catégories.

Structure de route pour une hiérarchie de catégories à trois niveaux avec intersections multiples de tags
scope "/multi" do
  constraints(tag_id: /[^\/]+?/, format: /json|rss/) do
     get '/c/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_category_show'
     get '/c/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_parent_category_category_show'
     get '/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_grandparent_category_category_show'

     Discourse.filters.each do |filter|
       get "/c/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_category_show_#{filter}"
       get "/c/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_parent_category_category_show_#{filter}"
       get "/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_grandparent_category_category_show_#{filter}"
     end
   end
end

Ceci est plus complexe que ce que je pense que vous souhaitez faire, mais ce n’est pas durable à moins que vous ne soyez prêt à investir beaucoup de temps ou de ressources pour le prendre en charge. Il est probable que cela se brise à un moment donné lorsque Discourse standard évoluera.

Dans ce contexte, il y a deux choses à comprendre concernant la structure de route des catégories et des tags dans Discourse standard :

  1. Les intersections multiples de tags ne sont possibles qu’à l’échelle du site ; pas au niveau des catégories. Autrement dit, il n’existe pas de routes dans Discourse standard pour afficher une liste de sujets contenant des sujets d’une catégorie spécifique et portant plus d’un tag spécifique. Si vous le souhaitez, vous devrez ajouter cette route.

  2. Les intersections de catégories ne sont pas possibles. Autrement dit, il n’existe pas de route dans Discourse pour afficher des sujets provenant de deux catégories au même niveau (c’est-à-dire deux catégories parentes ou deux catégories enfants).

Vous pouvez tout de même mettre en place un système à quatre niveaux (ce qui semble être votre objectif) sans ajouter de modifications significatives côté serveur.

Par exemple, vous pourriez utiliser exclusivement des tags pour représenter les quatre niveaux. https://thepavilion.io/tags/intersection/events/bug/to-do/high représente l’intersection des tags events, bug, to-do et high sur Pavilion. Vous pourriez avoir quatre menus déroulants, un pour chaque groupe de tags auquel ces tags appartiennent, par exemple :

[plugin] [type] [status] [importance]

Une fois que vous aurez défini comment structurer votre hiérarchie dans le cadre de la structure de route existante de Discourse, le reste des éléments que vous avez listés ne sont que des modifications côté client et sont (relativement) simples à mettre en œuvre.

  1. Hiérarchie de catégories à 3 niveaux

    y a-t-il un exemple ? Je ne sais pas à quoi cela ressemblerait ni où le code est ajouté.
    Où et comment la grandparent_category est-elle introduite, alors qu’il n’existe pas d’outils par défaut pour le faire via l’interface utilisateur ?
    Est-ce en quelque sorte lié à Pavilion ? Ce n’est pas le cas, n’est-ce pas ? Le code ci-dessus modifierait-il la page d’accueil des catégories, n’est-ce pas ?

  2. Les intersections de plusieurs tags semblent intéressantes, bien qu’elles

    cela pourrait nécessiter de sauter les catégories comme route de navigation principale et de créer une page d’accueil personnalisée basée sur ces tags, quelque chose que j’ai demandé dans Display tags by tag group - #22 by PackElend
    Cela nécessiterait-il un thème personnalisé ?

  3. uniquement des tags

    oui, c’est l’idée de départ, tout le reste peut être modifié ultérieurement.
    Tant que nous assurons un étiquetage approprié, tout devrait être réalisable, selon le temps et la tolérance à la frustration :), n’est-ce pas ?
    La hiérarchie serait la suivante :
    1er niveau : nœuds locaux
    2e niveau : continents
    3e niveau : nations
    4e niveau : villes

    Au début, nous utiliserons correctement uniquement les nœuds locaux comme catégorie et une sous-catégorie par ville*. Dès qu’il y aura trop de nœuds, nous passerons aux nœuds locaux et aux nations, en espérant créer notre propre thème pour rendre la navigation basée sur les tags plus attrayante (par exemple, les mêmes boîtes pour les tags que pour les catégories, comme mentionné au point 2).
    De plus, j’espère que nous pourrons avancer avec ma demande de fonctionnalité à venir, discutée dans Plugin Locations, car cela pourrait être utilisé dans de nombreux groupes de catégories/tags :angel:.

    La chose la plus importante est que nous fassions fonctionner l’étiquetage automatique des sujets dès que possible, sinon nous aurons un chaos avant même de commencer à grande échelle.
    En outre, nous devons introduire des listes déroulantes supplémentaires dans la barre de navigation, remplies de tags en fonction de la sélection. J’espère que ce n’est pas un gros problème de mélanger des sous-catégories avec des listes déroulantes définies par des tags.
    Est-il simple de réaliser quelque chose comme la mise en page ci-dessous ?

    1. mise en page avec un faible nombre de nœuds
      image
    2. mise en page avec un nombre plus élevé de nœuds
      image
  4. fusionner les boîtes
    Pour finir, cela pourrait être utile : pouvez-vous fusionner des boîtes comme :

image

Cela ne fonctionnera pas car cela viole l’une des restrictions que j’ai mentionnées.

Vous ne pouvez pas filtrer par deux balises au sein d’une catégorie.

image

Je ne suis pas sûr, mais je pense que vous supposez que si vous êtes dans la catégorie « nœuds locaux » et que vous filtrez par « continents », vous pourrez également filtrer par nations et villes en même temps. Cela ne fonctionnera pas non plus.

Je pense que c’est votre meilleure option.

utiliser uniquement les nœuds locaux comme catégorie et une sous-catégorie par ville

Je pense que vous essayez d’intégrer trop de planification future dans vos besoins actuels.

Dès qu’il y aura trop de nœuds, nous passerons aux nœuds locaux et aux nations

Je comprends le désir de mettre en place la « structure » appropriée dès maintenant, mais quelle que soit la qualité de votre service, il faudra du temps avant que cela ne devienne un problème pour vous, c’est-à-dire des années. À ce stade, les hypothèses sur lesquelles vous faites fonctionner votre communauté auront changé.

De plus, le problème que vous rencontrerez sera largement une question d’organisation plutôt que de hiérarchie. Par exemple, vous pourriez simplement regrouper les sous-catégories de villes dans une barre de navigation modifiée selon la nation si vous le souhaitiez. Si vous souhaitiez avoir des discussions au niveau « national » (à vérifier si cela aurait un sens), vous pourriez simplement créer une sous-catégorie séparée pour cela.

Vous n’avez pas nécessairement besoin d’une structure hiérarchique dans votre forum de discussion qui corresponde strictement à la hiérarchie administrative des lieux autour desquels les discussions ont lieu. Vous avez besoin d’une hiérarchie qui permette à vos utilisateurs de trouver le contenu qui leur est pertinent. Je comprends que vous reliez ces deux concepts, mais je ne suis pas sûr que cela soit justifié. Se concentrer trop sur cette connexion complique inutilement votre réflexion sur la structure du forum.

En résumé, je pense que vous investissez trop pour rendre cela structurellement similaire à la façon dont vous voyez l’état idéal de votre service d’un point de vue à 10 000 pieds, c’est-à-dire opérant à une échelle si grande qu’il devient nécessaire de diviser les villes par nations et continents. Quand et si vous arrivez à ce point, la nature même de cette décision sera différente.

Tu as raison, c’est une erreur de ma part. Je me suis perdu dans les détails hier soir.

[1] Ne serait-il pas possible d’ajouter des listes déroulantes supplémentaires ?
Cela simulerait en quelque sorte une recherche avancée.

Je suis d’accord. J’essaie de rapprocher une pensée ancienne, profondément structurée, de l’approche de Discourse.

Mais quand même, comme tu l’as dit,

je ne suis pas sûr qu’il n’y aura que

étant donné que l’accent est mis sur des projets à très faible échelle géographique. Bien sûr, certains sujets auront une importance nationale ou mondiale. Comment modérer cela, mettre tout dans le bon contexte et le rendre accessible au bon endroit dans Discourse est probablement quelque chose où l’apprentissage par la pratique s’applique.

Si nous décidons de nous fier uniquement aux étiquettes, ton approche dintersection d'étiquettes pourrait être d’une aide considérable. Avant de franchir cette étape, nous devons personnaliser la page d’accueil des étiquettes et de lintersection pour qu’elle ressemble d’une certaine manière à la page d’accueil des catégories. Est-ce réalisable ?
Je pense à adapter la mise en page de https://se23.life/tags pour utiliser des boîtes remplies de « sous-étiquettes », comme suggéré dans Higher level of granularity for category & subcategory styling - #7 by PackElend (mais là, je demandais d’améliorer les boîtes pour les sous-catégories).
De plus, dès que tu cliques sur une boîte ou une étiquette à l’intérieur d’une boîte, cela déclenche la requête https://thepavilion.io/tags/intersection/tag1/tag2/tag3/.... Le résultat est rendu et affiché de la même manière que le style en boîte (ou tout ce que nous jugerons approprié).

Comme tu le vois, je suis toujours pris dans l’approche multiniveau, car c’est la même analogie que lorsque tu zoomes du niveau global au niveau local. C’est la voie de navigation la plus naturelle pour tout nouvel utilisateur souhaitant atteindre son nœud local.
J’espère que tu as raison et que

mais il pourrait y avoir des préoccupations concernant le risque qu’un niveau soit encombré par trop d’étiquettes. Par exemple, inclure toutes les villes des États-Unis ou de la Chine dans les sous-catégories États-Unis et Chine respectivement pourrait devenir confus.

Je suis d’accord, mais bien que je sois probablement

:grin:. Cette affirmation aidera à dédramatiser l’approche de niveau profond.

Peux-tu expliquer cela plus en détail ou existe-t-il un exemple ?
Cette personnalisation de la barre de navigation est-elle en quelque sorte la même chose que demandée au tout début de ce message, marquée par [1] ?

J’ai créé des maquettes visualisant une feuille de route possible, en postulant que les niveaux « nation » et « villes » ne peuvent pas coexister côte à côte en faisant de chacun d’eux une sous-catégorie des nœuds locaux.

  1. Page d’accueil : catégories

  2. Page d’accueil : catégories, mais les nœuds locaux apparaissent comme des champignons

  3. Page d’accueil : étiquettes, un thème personnalisé gère la mise en page des catégories