J’héberge un site qui a plus de 1 000 catégories. La communauté pour laquelle il fonctionne préfère utiliser les catégories pour la séparation sémantique plutôt que, par exemple, les tags.
Cela fonctionne raisonnablement bien, cependant, j’ai rencontré un problème récemment (et je ne suis pas sûr quand il a commencé) :
Naviguer vers une vue de catégorie qui a plus de 20 sous-catégories et utilise des « Boîtes » pour rendre les éléments de lien de sous-catégorie, n’affiche que (les 20 premières ?) catégories dans la liste.
Cliquer sur l’élément de sélection déroulant detailsaffiche la liste complète.
Oui, je pense que votre suspicion est tout à fait justifiée. Discourse n’a pas été conçu pour gérer des milliers de catégories, et ce pour de nombreuses raisons. Nous avons travaillé sur le chargement des catégories, donc cela pourrait changer à l’avenir.
Envisageriez-vous au moins de rendre CategoryList::CATEGORIES_PER_PAGE ou CategoryList::MAX_UNOPTIMIZED_CATEGORIES configurables d’une manière ou d’une autre ? Même un réglage de site caché conviendrait dans mon cas.
Écrire du code de plugin pour les remplacer est quelque peu disgracieux car je ne trouve aucun autre moyen que le “monkey patching” de CategoryList, ce qui me semble extrêmement fragile.
Entrer dans le monde du « monkey patching » n’est certainement pas idéal.
Cela dit, je serais préoccupé par le fait de tripoter CategoryList::MAX_UNOPTIMIZED_CATEGORIES, nous l’avons choisi car les choses deviennent problématiques à des nombres plus élevés. CategoryList::CATEGORIES_PER_PAGE, cependant, pourrait probablement être augmenté confortablement jusqu’à 100.
Nous avons introduit cette fonctionnalité car les sites avec plus de 1 000 catégories avaient une page “/categories” inutilisable. Malheureusement, cela a introduit un bug car si un site a plus de 1 000 catégories, il essaiera de forcer le chargement paresseux (ou page par page) des sous-catégories également, même lorsque ce n’est pas le cas.