Bloques de la barra lateral derecha

|||
-|-|-|
:discourse2: | Resumen | Bloques de la Barra Lateral Derecha muestra una barra lateral a la derecha de las listas de temas con una lista configurable de bloques.
| :eyeglasses: | Vista previa | Vista previa en el Creador de Temas de Discourse
:hammer_and_wrench: | Enlace al Repositorio | https://github.com/discourse/discourse-right-sidebar-blocks
:open_book:|¿Nuevo en los Temas de Discourse?| Guía para principiantes sobre el uso de temas de Discourse

Instalar este componente de tema

Características

El componente incluye algunos bloques que puedes mostrar en la barra lateral:

  • popular-tags
  • top-contributors
  • recent-replies
  • category-topics
  • custom-html
  • category-list
  • subcategory-list
  • upcoming-events-list*
  • minimal-gamification-leaderboard**

:information_source: El directorio de usuarios debe estar habilitado para que se complete la lista de Principales Contribuidores. Si tu lista está en blanco, busca enable user directory en la configuración de tu administrador para asegurarte de que esté habilitada.

* Solo disponible cuando se usa con el plugin Calendario.
** Solo disponible cuando se usa con el plugin Gamificación.

También puedes usar otros componentes Ember como bloques, solo necesitas usar el nombre correcto. Por ejemplo, el núcleo incluye un componente Ember signup-cta, y puedes usarlo en la barra lateral tal cual. Ten en cuenta que no puedes usar componentes que esperan un conjunto de parámetros, pero puedes crear tu propio componente Ember en un tema separado y referenciarlo solo por su nombre en la configuración blocks de la barra lateral.

Puedes controlar algunas características de los bloques proporcionados a través de parámetros.

nombre descripción predeterminado valor disponible para
count limita el número de resultados varía número todos excepto custom-html
excerptLimit limita la longitud de cada extracto de respuesta 150 número recent-replies
id id de categoría id de categoría (category-list usa separado por comas) category-topics, category-list
content contenido a mostrar html custom-html
scopeToCategory solo muestra en la categoría o subcategoría X id de categoría popular-tags
excludedTags lista de etiquetas excluidas nombres de etiquetas popular-tags
displayInSpecificCategories lista de categorías para mostrar el widget todas números separados por comas popular-tags
id id de la tabla de clasificación número minimal-gamification-leaderboard
tag qué etiqueta mostrar id de etiqueta tag-topics
period período de tiempo de los temas principales weekly all, yearly, quarterly, monthly, weekly, daily top-topics
title título del bloque varía string tag-topics, category-list, top-contributors
excludedGroupNames Excluye grupos especificados Nombres de grupos top-contributors
order Ordena a los contribuidores String (likes_received o likes_given) top-contributors
period Período de tiempo para los principales contribuidores yearly all, yearly, quarterly, monthly, weekly, daily top-contributors
upcomingDays Eventos iniciados antes del valor proporcionado 180 número upcoming-events-list
timeFormat Formato de fecha/hora del evento LT formato de momentjs upcoming-events-list

Ajustes

Nombre Descripción
blocks
show in routes Solo para usuarios avanzados: limita la barra lateral a las rutas seleccionadas.
Ejemplos: discovery.latest, discovery.unread, discovery.new, discovery.top, tag.show, “c/category-slug” (para categorías), “tag/sample-tag” (para etiquetas).
Cuando está vacío, la barra lateral se muestra en todas las rutas de lista.

blocks: elige los bloques a mostrar y ajusta su orden

show_in_routes: decide en qué rutas de lista de temas mostrar la barra lateral. Por defecto, se mostrará en todas las rutas de descubrimiento excepto en /categories.

Traducción Predeterminado
top_contributors.heading Principales contribuidores
top_contributors.view_all Ver todo
popular_tags.heading Etiquetas populares
popular_tags.view_all Ver todo
recent_replies.heading Respuestas recientes
subcategory_list.heading Subcategorías
top_topics.heading Temas principales
category_list.heading Categorías

Capturas de pantalla

Ten en cuenta que el componente viene con un estilo muy básico, la suposición es que los administradores que usan el componente agregarán su propio estilo en su propio tema.

Interacciones

Cuando se usa junto con el plugin Discourse Calendar, puedes agregar un bloque de barra lateral para tus próximos eventos. El nombre del bloque es upcoming-events-list, y el formato de fecha se puede personalizar siguiendo esta sintaxis (por ejemplo, MMMM D, YYYY).

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

60 Me gusta

¿Qué debo añadir en el parámetro “name” si utilizo html-personalizado?

1 me gusta

¡Genial ver esto como un componente temático #oficial! Ciertamente abre un nuevo mundo de personalizaciones.

Tengo 2 preguntas:

  1. En la barra lateral, quiero mostrar la lista de temas /latest de manera similar a como lo hace category-topics. ¿Es esto posible? recent-replies casi lo logra (especialmente si el extracto está oculto), pero realmente quiero incluir temas sin respuestas.

  2. ¿Es posible mostrar los bloques laterales solo en ciertas categorías? Lo que quiero decir es que la única ruta que se muestra es la Lista de Temas de Categoría, y solo para las categorías que especifico.

1 me gusta

Disculpas, la documentación para esto es escasa (la actualizaré ahora). El nombre del parámetro para custom-html es content.

No tenemos nada prefabricado para la lista completa de /latest, pero puedes crear la tuya y agregarla a la configuración usando su nombre. Debería ser muy similar a las listas de categorías/etiquetas, solo que sin un filtro.

Actualmente no, no puedes mostrarlo solo en categorías específicas. Sin embargo, puedes usar discovery.category en la configuración show in routes, que solo mostrará la barra lateral en las rutas de categorías (pero en todas ellas, no en un subconjunto).

3 Me gusta

Gracias, ¿es posible incluir la barra lateral en cada tema también?

4 Me gusta

Acabo de notar una limitación del componente, especialmente en lo que respecta a los bloques category-topics y subcategory-list, y es que al agregar varios bloques de cualquiera de estos tipos con diferentes id, siempre resultaba en que mostraran temas/subcategorías del bloque superior en el editor de lanzamiento (supongo).

Un error que tengo ahora mismo es que, después de jugar con el bloque subcategory-list unas 10-12 veces, dejó de mostrarse por completo en nuestro sitio de staging (ver video a continuación).

2 Me gusta

El bloque subcategory-list no acepta ningún parámetro. Cuando se usa, mostrará las subcategorías de la categoría actual basándose en a qué categoría actual hayas navegado… por lo que no tiene sentido usar ese bloque más de una vez.

Por eso tampoco se muestra subcategory-list en tu video. Si estás en una ruta que no es de categoría, ese bloque no se muestra.

Para category-topics, en tu video veo el mismo ID usado dos veces: 7. Hice una prueba local y con diferentes IDs obtengo diferentes temas mostrados (es decir, no puedo reproducir el error reportado).

4 Me gusta

Hola, ¡muchas gracias por este increíble plugin!

Tengo una pregunta sobre la barra lateral subcategory-list: ¿hay alguna opción para mostrarla solo para una categoría en particular?

Nuestros desarrolladores lo han revisado y parece que no hay soporte para el parámetro id en subcategory-list, ¿podrías añadirlo, por favor?

2 Me gusta

Y con respecto al bloque top-contributors: ¿hay alguna forma de obtener los resultados de un período de una semana?

2 Me gusta

Actualmente no, no existe esta opción. Tiene sentido añadirla, aunque me imagino que debería admitir varios IDs para que puedas mostrar el bloque para una lista de categorías (A, B y C, por ejemplo). Estaré encantado de revisar las PRs en el repositorio, si vuestros desarrolladores creen que pueden añadir esto, sería genial. (De lo contrario, puedo añadirlo a una lista de “cosas deseables” en el componente del tema).

¿Te refieres a a) obtener los resultados y almacenarlos en caché durante una semana o b) obtener los principales contribuidores de la última semana en cada carga? Lo último debería ser fácil de añadir, el almacenamiento en caché es un poco más complicado.

3 Me gusta

@pmusaraj ¿puedes añadir

padding: 3px 4px 3px 4px

para las etiquetas populares?

Gracias.

1 me gusta

Hola @pmusaraj, ¡muchas gracias por tu respuesta!

Nuestro desarrollador ha compartido las PRs aquí, por favor échales un vistazo: Implement the `displayInCategories` parameter which allows to specify a list of categories where the `subcategories-list` block is displayed by d521bb85 · Pull Request #10 · discourse/discourse-right-sidebar-blocks · GitHub

¡La segunda variante sería perfecta! Necesitamos mostrar la lista de los principales contribuyentes de la última semana, de hecho. ¡Muchas gracias!

4 Me gusta

El componente intencionadamente tiene muy poco estilo para que los consumidores puedan añadir sus propios estilos en sus propios temas/componentes de tema.

¡Gracias, esa PR es genial y ya está fusionada!

También trabajaré en breve en añadir la configurabilidad al bloque de los principales contribuidores (o si alguien es más rápido, estaré encantado de revisar una PR).

3 Me gusta

No estoy seguro de dónde encontrar el código para eso. ¿Podrías indicarme? Me gustaría ver cómo modificar los temas de categorías para que, al no tener ID, te dé todas las categorías (y, por lo tanto, efectivamente la lista /latest).

¡Sería genial tener eso en todos los bloques!

2 Me gusta

@pmusaraj ¡Genial! Muchas gracias por tu ayuda, estoy deseando usar el bloque de principales contribuidores :slight_smile:

1 me gusta

Hola! No estoy seguro de si este componente está causando errores. Pero una vez deshabilitado, ya no se ven errores. :thinking: ¿Podría alguien echar un vistazo a esto para ayudarme a resolver el problema? Lo agradecería mucho.

Con él habilitado, al visitar un tema específico en el escritorio, al hacer clic en el logotipo del sitio en la barra superior en un intento de volver a la página de inicio, me llevaba a una pantalla de carga que nunca desaparecía y arrojaba errores en la consola del navegador (como se muestra a continuación). No se vieron registros de error relacionados en la ruta mysite/logs.

d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'findFiltered')
    at new CategoryTopics (d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98:18)
    at h.createComponent (base-component-manager.js:37:1)
    at h.createComponent (ember-component-manager.js:54:1)
    at C.create (manager.js:558:1)
    at Object.evaluate (runtime.js:3301:1)
    at Object.evaluate (runtime.js:1312:1)
    at Dt.evaluateSyscall (runtime.js:5232:1)
    at Dt.evaluateInner (runtime.js:5188:1)
    at Dt.evaluateOuter (runtime.js:5180:1)
    at Wt.next (runtime.js:6191:1)
    at Wt._execute (runtime.js:6175:1)
    at Wt.execute (runtime.js:6166:1)
    at qt.handleException (runtime.js:5369:1)
    at Kt.handleException (runtime.js:5605:1)
    at Lt.throw (runtime.js:5302:1)
    at Be.evaluate (runtime.js:2580:1)
    at Lt._execute (runtime.js:5285:1)
    at Lt.execute (runtime.js:5266:1)
    at Ht.rerender (runtime.js:5634:1)
    at Er.render (index.js:7578:1)
    at index.js:7896:1
    at It (runtime.js:5074:1)
    at Rr._renderRoots (index.js:7876:1)
    at Rr._renderRootsTransaction (index.js:7928:1)
    at Rr._revalidate (index.js:7970:1)
    at invoke (backburner.js:351:1)
    at p.flush (backburner.js:241:1)
    at h.flush (backburner.js:447:1)
    at q._end (backburner.js:999:1)
    at _boundAutorunEnd (backburner.js:648:1)
CategoryTopics @ d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98
createComponent @ base-component-manager.js:37
createComponent @ ember-component-manager.js:54
create @ manager.js:558
(anonymous) @ runtime.js:3301
evaluate @ runtime.js:1312
evaluateSyscall @ runtime.js:5232
evaluateInner @ runtime.js:5188
evaluateOuter @ runtime.js:5180
next @ runtime.js:6191
_execute @ runtime.js:6175
execute @ runtime.js:6166
handleException @ runtime.js:5369
handleException @ runtime.js:5605
throw @ runtime.js:5302
evaluate @ runtime.js:2580
_execute @ runtime.js:5285
execute @ runtime.js:5266
rerender @ runtime.js:5634
render @ index.js:7578
(anonymous) @ index.js:7896
It @ runtime.js:5074
_renderRoots @ index.js:7876
_renderRootsTransaction @ index.js:7928
_revalidate @ index.js:7970
invoke @ backburner.js:351
flush @ backburner.js:241
flush @ backburner.js:447
_end @ backburner.js:999
_boundAutorunEnd @ backburner.js:648
Promise.then (async)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (async)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (async)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (async)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_ensureInstance @ backburner.js:1206
scheduleOnce @ backburner.js:845
k @ index.js:522
queueRerender @ mount-widget.js:124
scheduleRerender @ widget.js:319
rerenderResult @ widget.js:365
F @ hooks.js:207
(anonymous) @ hooks.js:247
dispatch @ jquery.js:5430
_.handle @ jquery.js:5234
frame:251 Dismissaste la señal, pero las cookies de terceros están deshabilitadas en tu navegador, por lo que la señal volverá la próxima vez que visites la página.

Veo información sobre este componente en el archivo js mencionado en la primera línea del registro de error anterior.

// línea 96-103 de d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe
      const filter = "c/" + categoryId;
      this.category = _category.default.findById(categoryId);
      this.store.findFiltered("topicList", {
        filter
      }).then(result => {
        const results = result.topic_list.topics;
        results.forEach(topic => {
          topic.url = "".concat((0, _getUrl.default)("/t/")).concat(topic.slug, "/").concat(topic.id);
1 me gusta

Ah, sí, disculpa por eso. Debería estar arreglado ahora, solo necesitas descargar la última actualización del componente de tema.

3 Me gusta

¡Gracias! Ahora funciona perfectamente.

3 Me gusta

Hola @pmusaraj, disculpa si parezco insistente, solo quería saber si hay alguna fecha estimada para esta implementación.

Sería una adición increíble :slight_smile:

¡Muchas gracias!

3 Me gusta

¡Gracias por este increíble componente!

Noté que mi encabezado y pie de página completos desaparecen globalmente cuando tengo esto habilitado (todo en mi header.html y footer.html). ¿Fue esto intencional? Pero para solucionar esto, tengo que usar PluginAPI para agregar manualmente un encabezado/pie de página.

2 Me gusta