Nous avons créé un thème Discourse personnalisé où certaines catégories sont affichées sur la page d’accueil à l’aide de JavaScript. Le script utilise une liste prédéfinie de noms de catégories (sous forme de tableau séparé par des virgules) pour récupérer et rendre le contenu de /categories.json.
Alors que la plupart des catégories s’affichent correctement, quelques-unes sont absentes de la page d’accueil — même si elles sont explicitement listées dans le script et existent dans le système avec des identifiants de catégorie valides.
En inspectant la réponse de /categories.json, nous avons constaté que ces catégories spécifiques ne sont pas du tout incluses dans la sortie de l’API. Cependant, elles :
Existent dans l’instance Discourse
Sont des catégories de premier niveau
Ont everyone configuré avec au moins des permissions “See”
Ne sont pas archivées, masquées ou imbriquées
Nous essayons de comprendre :
Dans quelles conditions Discourse omet-il des catégories de categories.json ?
Comment pouvons-nous garantir que toutes les catégories nécessaires apparaissent dans cette réponse, surtout si nous voulons les afficher sur la page d’accueil via un code personnalisé ?
Toute idée ou solution recommandée serait appréciée.
Ceci est sur la dernière version de Discourse et il n’y a encore aucun sujet… J’ai essayé d’en créer un factice dans une catégorie invisible basée sur l’ID de catégorie, en supposant que cela invoquerait le JSON des catégories pour les lister, mais cela n’a pas aidé et j’ai donc également supprimé le sujet factice… actuellement, les deux catégories n’ont aucun sujet…
Ça ressemble à ce que j’ai raison. Il serait idiot d’avoir la dernière version envoyant un tas de catégories qui ne sont pas utilisées lors de la panne. Je pense que ce que je ferais, c’est soit coder en dur les catégories que vous voulez, soit les mettre dans un paramètre de thème.
Vous pourriez également faire un appel Ajax, mais cela ralentirait les choses.
D’accord. Je pense que si vous obtenez ce point de terminaison, il aura des catégories, mais que les catégories incluses dans /latest ne sont probablement que celles nécessaires pour ces sujets.
Je me suis probablement embrouillé. Je pensais que c’était à propos de /categories.json qui n’incluait pas certaines catégories pour une raison inconnue et j’ai pensé que j’essaierais d’exclure celles sans sujets comme cause.
Merci Pfaffman, JammyDodger. Comme nous utilisons un thème personnalisé, nous avons tenté d’ajouter quelques catégories précédemment cachées à la page d’accueil en les ajoutant à la liste existante de catégories exposées dans notre JavaScript. Nous avons déjà cinq catégories qui s’affichent correctement avec cette méthode. Cependant, l’ajout de ces deux catégories supplémentaires ne les fait pas apparaître sur la page d’accueil. Pour le dépannage, nous avons même essayé de publier un sujet dans l’une d’elles pour voir si cela déclencherait la visibilité, mais cela n’a eu aucun effet.
Activation du chargement paresseux, cela a résolu ce problème pour afficher les catégories qui n’étaient pas visibles auparavant.. Je ne sais pas comment cela est lié… Cependant, cela implique que les catégories n’ont pas de problème de permission.. je n’ai pas encore trouvé la cause racine pour résoudre ce problème.
Ce code de chargement paresseux, je pense, est conçu pour ne pas envoyer les catégories qu’il pense ne pas avoir besoin d’envoyer. Je ne suis pas sûr de comment le convaincre que vous voulez toutes les catégories.