Hemos creado un tema personalizado de Discourse donde algunas categorías específicas se muestran en la página de inicio usando JavaScript. El script utiliza una lista predefinida de nombres de categorías (como un array separado por comas) para obtener y renderizar contenido desde /categories.json.
Mientras que la mayoría de las categorías se muestran correctamente, algunas faltan en la página principal, aunque están explícitamente listadas en el script y existen en el sistema con IDs de categoría válidos.
Al inspeccionar la respuesta de /categories.json, encontramos que estas categorías específicas no están incluidas en la salida de la API en absoluto. Sin embargo, ellas:
Existen en la instancia de Discourse
Son categorías de nivel superior
Tienen everyone configurado con al menos permisos de “Ver”
No están archivadas, ocultas o anidadas
Estamos tratando de entender:
¿Bajo qué condiciones Discourse omite categorías de categories.json?
¿Cómo podemos asegurarnos de que todas las categorías necesarias aparezcan en esa respuesta, especialmente si queremos mostrarlas en la página principal mediante código personalizado?
Agradeceríamos cualquier consejo o solución recomendada.
esta es la última versión de discourse y aún no tiene temas… Intenté crear un tema ficticio en una de las categorías invisibles basándome en el ID de la categoría, presumiendo que esto invocaría el JSON de las categorías para listarlas, pero no ayudó y, por lo tanto, también eliminé el tema ficticio… actualmente ambas categorías no tienen temas…
Suena a que tengo razón. Sería una tontería que latest enviara un montón de categorías que no se usan en la interrupción. Creo que lo que haría sería codificar las categorías que quieres o ponerlas en una configuración del tema.
También podrías hacer una llamada Ajax, pero eso ralentizaría las cosas.
Bien. Creo que si obtienes ese endpoint, tendrá categorías, pero las categorías incluidas en /latest probablemente solo sean las necesarias para esos temas.
Creo que me he confundido. Pensé que se trataba de que /categories.json no incluía ciertas categorías por una razón desconocida y pensé que intentaría descartar las que no tuvieran temas como causa.
Gracias Pfaffman, JammyDodger. Dado que estamos utilizando un tema personalizado, intentamos añadir algunas categorías previamente ocultas a la página de inicio añadiéndolas a la lista existente de categorías expuestas en nuestro JavaScript. Ya tenemos cinco categorías que se muestran correctamente utilizando este método. Sin embargo, al añadir estas dos categorías adicionales, no aparecen en la página de inicio. Para solucionar el problema, incluso intentamos publicar un tema en una de ellas para ver si eso activaba la visibilidad, pero no tuvo ningún efecto.
Habilitar la carga diferida, resolvió este problema para mostrar las categorías que anteriormente no eran visibles..No estoy seguro de cómo está relacionado… Sin embargo, implica que las categorías no tienen ningún problema de permisos.. todavía no he encontrado la causa raíz para resolver este problema.
Ese código de carga diferida, creo, está diseñado para no enviar categorías que piensa que no necesitan ser enviadas. No estoy seguro de cómo convencerlo de que quieres todas las categorías.