Barras laterales de la lista de temas

:information_source: Anteriormente “Discourse Category Sidebars” — el nombre de este componente del tema se ha actualizado a Topic List Sidebars ahora que soporta tanto categorías como etiquetas.

:discourse2: Resumen Topic List Sidebars toma un tema y lo aplica como una barra lateral para la lista de temas de una categoría o etiqueta.
:eyeglasses: Vista previa Vista previa en Discourse Theme Creator
:hammer_and_wrench: Enlace al repositorio https://github.com/discourse/discourse-topic-list-sidebars
:open_book: ¿Nuevo en los temas de Discourse? Guía para principiantes sobre el uso de temas de Discourse

Instalar este componente del tema

Características

Este componente del tema toma un tema y lo aplica como una barra lateral para la lista de temas de una categoría o etiqueta. Estas barras laterales solo son visibles cuando el navegador tiene 767px o más de ancho (la mayoría de las tabletas y monitores).

¿Qué puedo hacer con este componente del tema?

  • Elige un tema y muestra su contenido como una barra lateral para una categoría o etiqueta.

  • Configura una barra lateral para que se muestre en las páginas /latest, /new, /unread y /top usando all como nombre de categoría en tu configuración.

  • Elige que las barras laterales aparezcan a la izquierda o a la derecha de la lista de temas.

  • Por defecto, la barra lateral de una categoría también se mostrará para todas sus subcategorías a menos que una subcategoría tenga su propia barra lateral definida (puedes desactivar esto desmarcando la configuración inherit parent sidebar).

¿Cómo lo configuro?

Elige tus categorías y etiquetas, y añade el ID del tema (por ejemplo, example.com/t/example-topic/57) que te gustaría usar para rellenar el contenido de la barra lateral.

Recomiendo crear temas de barra lateral en sus respectivas categorías/etiquetas, cerrar el tema para que no haya respuestas y ocultarlo (para que no aparezca en la lista de temas).

Ten en cuenta que no puedes usar un tema en una categoría privada como barra lateral en una categoría pública (técnicamente sí puedes, pero los usuarios sin acceso a ese tema privado solo verán una barra lateral vacía).

Configuración

Nombre Descripción
sidebars Añadir y eliminar barras laterales
sidebar side Elegir entre Izquierda o Derecha
inherit parent sidebar Si está marcado, las subcategorías heredarán la barra lateral de su categoría principal (a menos que la subcategoría tenga su propia barra lateral asignada).

Cuando está desmarcado, las subcategorías solo mostrarán una barra lateral si se especifica una.
stick on scroll Cuando está marcado, la barra lateral tiene una posición fija al hacer scroll

Notas para desarrolladores

Cada barra lateral de categoría está envuelta en una clase que contiene el slug de la categoría, por lo que para la categoría de personal sería .category-sidebar-staff. Puedes usar estas clases para estilizar las barras laterales individuales.

La etiqueta body en las páginas con barras laterales también tiene una clase añadida para que puedas usar body.custom-sidebar para aplicar estilos en todas las páginas que tengan una barra lateral.

Créditos

:heart: ¡Gracias especiales a @xrav3nz por sentar las bases para hacer posible este componente!


:discourse2: ¿Alojado por nosotros? Los componentes de tema están disponibles para usar en nuestros planes Standard, Business y Enterprise.

59 Me gusta

Trying to figure out how to make this work with tags as well. (we use tags heavily rather than having tons of categories.)

It looks like it may be about replacing controller:navigation/category with whatever the equivalent for tags is but not sure.

2 Me gusta

Solo eché un vistazo rápido y es posible hacer esto para las etiquetas…

Probablemente trabajaré más en esto mañana y lo separaré en su propio repositorio.

Sí, eso es lo esencial: esto parece funcionar para las etiquetas:

const controller = container.lookup("controller:tags-show");
const tag = controller.get("tag");

Actualización: Ya tengo un componente de tema disponible, Discourse Tag Sidebars

10 Me gusta

Since I am using the header submenu plugin, A part of the text is covered by my header bar. It would be great if it was possible to add extra margin/offset or whatever it’s called for the case when additional elements before the header are covering the sidebar’s content.

Also: is there any way to keep the category drop down menu above the sticky sidebar’s content? that would make it easy for users to jump between categories quickly.

altogether I think the category sidebar is a great plugin and has huge potential to add useful information to the forum structure!

¡Otra gran extensión, Kris, gracias!

Tengo algunas preguntas y sugerencias que espero puedas ayudarme con…

1 - ¿Es posible hacer que, cuando un usuario navega por el foro, al pasar de página a página, la barra lateral siempre verifique la última versión de la publicación que contiene? En este momento, creo que el contenido de la barra lateral solo se actualiza al recargar la página. Desafortunadamente, el contenido que cambia raramente empieza a parecer desactualizado para los usuarios (especialmente los usuarios activos), por lo que me gustaría actualizar el tema asociado a la barra lateral con frecuencia si es posible. (De manera similar, si se cambia el ID del tema en las opciones de esa página, debería detectarlo en la siguiente vista de la página). No me importa la carga adicional por página/vista, pero si te preocupa que otros usuarios puedan verse afectados, podrías agregar una opción “cachear contenido de publicaciones” que haga que funcione como ahora.

2 - ¿Es posible asociar/obtener contenido de más de un tema por barra lateral? Por ejemplo, en la página “Lo más reciente”, podrías querer el contenido de los temas 33 y 55 (y en ese orden). Esto sería genial para permitir contenido diferente por página, mientras se incluye información o enlaces comunes que quieras que aparezcan al final de cada barra lateral.

3 - ¿Es posible expandir el plugin para que pueda usarse en todo el sitio? En este momento, creo que solo puede usarse en ciertas páginas. Idealmente, me gustaría usarlo en todo el foro, en todas las secciones y páginas principales. (Quizás tu plugin de barra lateral de etiquetas podría usarse junto con este para un control más fino, por ejemplo, para etiquetas individuales y/o temas; creo que ambos combinados podrían convertirse en un paquete de barra lateral muy potente).

4 - ¿Es posible agregar una opción de ancho de barra lateral, además de un punto de corte/configuración para ocultar (display-none)? Esto no es algo crítico, ya que se puede hacer mediante cambios en CSS, pero creo que sería agradable tenerlo en las opciones.

5 - Por último, pero no menos importante… ¿podrías hacer que las encuestas funcionen? Creo que permitir a los usuarios votar en las encuestas directamente desde la barra lateral sería increíble. Encuentro que contenido dinámico como este en las barras laterales puede hacerlas más interesantes para los usuarios, y por lo tanto, es menos probable que las ignoren automáticamente.

Creo que con todo lo anterior, este plugin sería un excelente candidato para ser incluido en el núcleo o como un plugin oficial de DC. En mi opinión, podría ayudar a las personas a poner su sello individual en sus foros, y estoy seguro de que la gente los usaría de formas divertidas e interesantes. :smiley:

Hola,

Excelente componente. ¿Es posible tener un panel lateral así para cada tema bajo una categoría específica?

Gracias.

¿Cuál es la sintaxis para dirigirse a una subcategoría? Esto es lo que he probado hasta ahora:

category/subcategory,123
subcategory,123
category-subcategory,123

Ninguna de estas parece funcionar. Sin embargo, las categorías principales se muestran.

1 me gusta

Hm, ¿alguien, por favor? No debería ser tan difícil dar una respuesta…

Parece que hubo una regresión y las subcategorías no funcionaban en algunos casos; la sintaxis debe ser la misma que para las categorías: subcategory, 123.

He refactorizado el tema, así que si lo actualizas, las subcategorías deberían funcionar como se espera.

6 Me gusta

¡Eso fue lo que necesitaba: perfecto!
Muchas gracias, justo a tiempo para nuestra gran inauguración.

1 me gusta

¡Plugin increíble!

¿Es esto posible para los grupos también? Tener una barra lateral para los grupos sería genial para dar información sobre el grupo.

¿Alguien puede indicarme cómo obtener los parámetros del grupo (para que el componente sepa que estás dentro de un grupo) para poder intentarlo y crear un PR yo mismo?

@hyphalos He creado un Widget de Grupos que se puede añadir a las barras laterales del Plugin de Diseños.

Quizás el código que tenía para eso te ayude a escribir tu PR:

Alternativamente, también podrías usar el plugin de Diseños y el propio widget.

2 Me gusta

Podría ser un poco atrevido pedirlo, ya que se llama barra lateral, pero: ¿sería posible añadir una opción para colocar el contenido no al lado, sino siempre encima de la lista de temas?

Usamos Discourse como una intranet social y, para algunas categorías, tenemos la necesidad de un área fácil de mantener para enlaces, listas de personas, etc. - este mecanismo sería genial para eso, pero simplemente hay muy poco espacio en la barra lateral.
Los trucos de CSS también son bienvenidos.

Ya he probado los banners de categoría, pero se limitan al primer párrafo, por lo que no es una opción.

Saludos,
Ralf
(Biblioteca Estatal de Berlín)

¿Qué hay de este TC?

Creo que todavía te quedarás con el primer párrafo. Pero eso podría alterarse potencialmente.

Hola Kris, esto está muy bien.

Me preguntaba si esto se podría modificar o tener una opción para moverlo de una barra lateral a una barra superior debajo del encabezado del sitio o tal vez justo debajo del logotipo de una categoría.

¿O si podría recibir orientación sobre cómo agregar CSS personalizado para moverlo y también hacer que se muestre para dispositivos móviles como una barra superior pegajosa? ¿Anclado justo debajo de la barra principal del sitio?

Puede que esté entendiendo mal cómo funciona este componente temático, pero ¿sería posible usarlo para mostrar la lista de temas a la izquierda, hacer clic en un tema de la lista y que las publicaciones se muestren a la derecha (y mantener la lista de temas fijada a la izquierda)? No necesito ver categorías. Se vería como Flarum.

1 me gusta

No, lo que hace este componente es tomar el contenido de un tema y utilizarlo para poblar una barra lateral para la lista de temas de una categoría específica. No es visible al navegar a un tema.

De acuerdo, ¡gracias!

¡Hola a todos! Acabo de fusionar una gran actualización en este componente que hace varias cosas: FEATURE: include tag sidebars, migrate to objects setting by awesomerobot · Pull Request #22 · discourse/discourse-topic-list-sidebars · GitHub

  • Migra la configuración del estilo de lista a una configuración de objetos. Esto significa:
    • Cada barra lateral se puede configurar para varias categorías a la vez
    • Ahora puedes seleccionar categorías del menú desplegable en lugar de agregar “slugs” manualmente
    • ¡También incluye una opción de etiqueta! Esto significa que ya no necesitarás un componente separado (Discourse Tag Sidebars)

La configuración existente debería migrar automáticamente al actualizar… a menos que tu “slug” sea diferente del nombre de la categoría, en cuyo caso deberás actualizar la configuración manualmente.

Por ejemplo, site-feedback migrará correctamente a Site Feedback, pero no hay un método para migrar “slugs” que no se alinean con los nombres (por ejemplo, tu “slug” para Site Feedback es hamburgers en lugar de site-feedback).

Probablemente cambiaré el nombre de este componente temático y descontinuaré las barras laterales de etiquetas para reflejar la nueva situación.

5 Me gusta

¿Migrarán automáticamente la configuración de las etiquetas?

Con la nueva configuración, ¿puede haber diferentes barras laterales para la misma etiqueta en diferentes categorías? ¿Cómo se resuelven los conflictos?

2 Me gusta