¿Existe alguna manera de “ocultar” las subcategorías de las listas de temas y mostrar las categorías principales debajo del título del tema en su lugar?
Mi resultado deseado es una categoría raíz con n subcategorías. Estas subcategorías no deben mostrarse en la interfaz de usuario; solo se utilizan para restringir el acceso a los publicaciones según la pertenencia a grupos.
En la lista de temas, me gustaría mostrar la categoría principal debajo del título del tema en lugar de la subcategoría.
Pensé en usar etiquetas, pero desafortunadamente no puedo restringir el acceso a los temas de esa manera.
Pero si solo deseas que esto ocurra para una categoría padre específica, necesitarías agregar más lógica. No sé cuál sería la forma recomendada de hacerlo, ¿registrando un helper de Handlebars?
Otra aproximación podría ser mostrar siempre ambos enlaces, de categoría y de categoría padre, y luego ocultar los que no desees con CSS.
Las categorías principales no están en la plantilla predeterminada, así que sí, supongo que tendrás que modificar la plantilla. Al menos, no conozco un enfoque más sencillo para lograrlo.
No hay ninguna configuración del sitio para modificar plantillas; te enviaré el código por mensaje directo para que lo pruebes.
En general, debes evitar las sobrescrituras completas de plantillas, ya que requieren mantenimiento: tendrás que ejecutar un diff y verificar qué ha cambiado si una actualización de Discourse rompe tu tema.
Lo que puedes hacer es dar un paso atrás y modificar los datos que se pasan a la plantilla en su lugar.
El topic-list-item es un componente de Ember, por lo que puedes usar api.modifyClass para realizar los cambios que necesites.
Por ejemplo, aquí tienes un fragmento de código que mostrará la insignia de la categoría principal en los temas de subcategoría debajo del título. Si el tema está en la categoría principal, el código no tendrá efecto.
He editado el fragmento anterior para reflejar ese cambio. Solo necesitas agregar los IDs de las categorías padre al array targetCategoryIds. Puedes encontrar el ID de la categoría visitando la página de la categoría y revisando la URL.
https://meta.discourse.org/c/support/6
El “6” al final de la URL anterior es el ID de la categoría de soporte aquí en Meta.
@Johani ¿Dónde exactamente debo colocar este fragmento de código?
Intenté ponerlo en la sección </head> y en la parte de encabezado de mi componente de tema donde almaceno todo mi CSS. Pero entonces la lista de temas se corta justo en el punto donde debería aparecer el primer tema afectado de la subcategoría.
Sí, hubo un problema con la forma en que se configuró la categoría que no noté localmente. He editado el fragmento de código anterior y ahora debería funcionar.
El fragmento de código anterior te permite establecer las categorías en las que quieres que funcione. Si quieres que funcione en todas las categorías, usarías algo como esto.