In many cases, it’s very useful and rigorous to set a topic under many categories. Is it possible to do so with Discourse?
AI-generated summary
The discussion revolves around the possibility of assigning a topic to multiple categories in Discourse. mausconi inquires about this feature, and lisajill responds that it’s not possible, suggesting the use of the tagging system instead. Mittineague proposes pinning globally as a potential solution, but lisajill dismisses this idea.
rudzainy shares a use case where assigning a topic to multiple categories would be beneficial and explores possible technical solutions, such as creating a middle table in the database or adding a model class reference. However, merefield points out that the current design of Discourse relies heavily on a single category per topic and that changing this would require significant work and potentially break compatibility with extensions and upgrades. As an alternative, merefield suggests using tags, which can be assigned to multiple topics and appear in multiple tag lists.
No. You’d need to use the tagging system for something equivalent and that would have no hierarchy.
Would Pinning Globally work?
Bonjour ![]()
Je suis curieux de connaître les limitations techniques de ceci.
Un exemple de mon cas d’utilisation serait :
- un sujet intitulé « Les cuisines locales de Lieu A sont généralement plus salées que les cuisines locales de Lieu B »
- où Lieu A et Lieu B sont des noms de catégories
- il y a un sondage avec les options
D'accord,NeutreetPas d'accord - pouvoir enregistrer le sujet dans les deux catégories permet la synchronisation des conversations et des votes entre les deux catégories dès le premier jour (ou idéalement quelques jours après la création du sujet), au lieu d’une approche réactive consistant à ne fusionner les sujets dupliqués qu’après que le problème soit devenu viral)
- un nom de code cool pour cela pourrait être
fonction/plugin anti-duplication-sujets-inter-catégorieslolz
Ma première pensée a été de créer une table intermédiaire dans la base de données. Lolz, tellement bas niveau ![]()
Il pourrait y avoir de meilleures solutions :
- ajouter une référence de classe modèle ou une association
- indexer une liste de sujets associés à une catégorie dans la base de données et appeler une méthode pour regrouper ces sujets lors de l’appel de
@category.all_published_topicsou quelque chose de similaire
Donc, je voulais juste savoir s’il y avait un interdit technique strict concernant ce problème avant que je ne plonge plus profondément ![]()
Eh bien, c’est simple à identifier, regardez le code source, c’est très fondamental à la conception :
C’est un pilier fonctionnel majeur.
Cet attribut entier unique est présent partout dans le code du modèle, l’API, les processus backend et l’interface utilisateur. L’hypothèse qu’il n’y en a qu’un seul dans des dizaines de composants de thème et de plugins aussi, j’imagine.
Il faudrait être très courageux pour essayer de changer une conception/hypothèse aussi fondamentale et ce serait beaucoup de travail, et vous ne pourriez probablement pas utiliser bon nombre des extensions disponibles dans l’écosystème.
Vous trouveriez presque certainement qu’il faudrait beaucoup de travail / que ce serait économiquement impossible de mettre à niveau l’instance, aussi.
Puis-je suggérer d’utiliser des tags au lieu d’une catégorie ?
Un sujet peut avoir plusieurs tags et peut donc apparaître dans plusieurs listes de tags.