| Resumen | Discourse Events añade funciones dinámicas e interactivas de calendario y eventos a tu sitio de Discourse. | |
| Guía de instalación | Este plugin viene incluido con el núcleo de Discourse. No es necesario instalar el plugin por separado. |
Habilitar Eventos
El plugin de Eventos se puede habilitar mediante el interruptor o desde sus ajustes, ambos accesibles desde tu página admin/plugins:
¿¿Nos alojas? Este plugin está disponible en nuestras capas Business y Enterprise https://www.discourse.org/plugins/calendar.html
Funciones
No es de extrañar que Discourse Events añada tanto las funciones de calendario como las de eventos a tu sitio de Discourse. Con ellas, puedes crear calendarios de temas individuales para seguir ocasiones importantes o líneas de tiempo, mostrar calendarios en categorías, añadir un calendario de vacaciones para marcar vacaciones, ausencias o días de enfermedad, crear temas de eventos interactivos, así como mostrar un resumen de calendario de fácil acceso de todos tus próximos eventos.
Calendarios
Se pueden crear calendarios a medida en múltiples temas, y aquellos a los que desees dar mayor visibilidad pueden mostrarse encima de la lista de temas de una categoría.
Puedes encontrar información más detallada sobre cómo crear y usar calendarios en:
Eventos
La función de Eventos permite insertar elementos interactivos en temas que tus miembros pueden usar para inscribirse para asistir o participar en las actividades de tu comunidad. Todo esto se resume en un calendario dedicado a todo el sitio, con la opción de añadir un enlace de fácil acceso a tu menú de navegación. Puedes encontrar más información sobre cómo crear y usar esta función en:
Esto no debe confundirse con el plugin de Eventos de Pavilion (fíjate en el plural)
Ajustes del Calendario
| Nombre | Descripción |
|---|---|
| calendar enabled | Habilita el plugin discourse-calendar. Esto añadirá soporte para una etiqueta [calendar][/calendar] en la primera publicación de un tema. |
| holiday calendar topic id | ID del tema del calendario de vacaciones/ausencias del personal. |
| holiday status emoji | Define el emoji utilizado para el estado de vacaciones. |
| delete expired event posts after | Las publicaciones con eventos caducados se eliminarán automáticamente después de (n) horas. Establece en -1 para deshabilitar la eliminación. |
| all day event start time | Los eventos que no tienen una hora de inicio especificada comenzarán a esta hora. El formato es HH:mm. Para las 6:00 am, introduce 06:00 |
| all day event end time | Los eventos que no tienen una hora de fin especificada terminarán a esta hora. El formato es HH:mm. Para las 6:00 pm, introduce 18:00 |
| calendar categories | Muestra un calendario en la parte superior de una categoría. Los ajustes obligatorios son categoryId y postId. ej: categoryId=6;postId=453[1] Otros ajustes válidos: tzPicker[2], weekends[3] y defaultView[4]. |
| calendar categories outlet | Permite cambiar qué outlet debe mostrar el calendario de la categoría. |
| working days | Establece los días laborables. Puedes mostrar la disponibilidad de un grupo usando la etiqueta timezones en una publicación, ej: [timezones group=admins][timezones] |
| working day start hour | Hora de inicio de las horas laborales. |
| working day end hour | Hora de fin de las horas laborales. |
| close to working day hours extension | Establece el tiempo de extensión en las horas laborales para resaltar las zonas horarias. |
| calendar automatic holidays enabled | Establece automáticamente el estado de vacaciones según la región de un usuario (nota: puedes deshabilitar vacaciones automáticas específicas en los ajustes del plugin) |
| map events title | Mapea el título del calendario de la barra lateral según la categoría. Por defecto es “Próximos eventos” |
Ajustes de Eventos
| Nombre | Descripción |
|---|---|
| discourse post event enabled | Habilita las funciones de Evento. Nota: también es necesario habilitar calendar enabled. |
| discourse post event allowed on groups | Grupos que tienen permiso para crear eventos. |
| displayed invitees limit | Limita el número de invitados mostrados en un evento. |
| display post event date on topic title | Muestra la fecha del evento después del título del tema. |
| use local event date | Usa la fecha local después del título del tema en lugar del tiempo relativo. |
| discourse post event edit notifications time extension | Extiende (en minutos) el período después del final de un evento cuando los invitados going (asistentes) siguen siendo notificados desde la edición en la publicación original. |
| discourse post event allowed custom fields | Permite que cada evento establezca el valor de campos personalizados. |
| events calendar categories | Muestra un calendario de eventos en la parte superior de una categoría. |
| sort categories by event start date enabled | Habilita la clasificación de temas de categorías por fecha de inicio del evento. |
| disable resorting on categories enabled | Permite a las categorías deshabilitar la capacidad de los usuarios para clasificar en la categoría de eventos. |
| sidebar show upcoming events | Muestra el enlace de próximos eventos en la barra lateral bajo ‘Más’. Requiere post event enabled |
| map events to color | Asigna un color de evento a una etiqueta o categoría especificada |
![]()
El endpoint
discourse-post-event/events.jsonahora tiene un parámetro añadido para cambiar entre respuesta simple y detallada. Para obtener la respuesta detallada puedes añadir?include_details=true:
/discourse-post-event/events.json?include_details=true
Crear eventos a través de la API
Puedes crear eventos a través de POST /posts.json con BBCode [event][/event] en el campo raw. Aquí están los detalles sobre cómo configurar tu solicitud de API:
- Usa
POST /posts.jsoncon el parámetroraw - Sintaxis de evento:
[event start="2024-05-10 20:00" status="public" timezone="America/Vancouver" end="2024-05-10 21:30" allowedGroups="trust_level_0"]\n[/event] - Se requiere un salto de línea
\nliteral entre las etiquetas de apertura y cierre - Las comillas dobles deben escaparse al usar JSON (
\") - La cuenta de usuario de la API debe tener permiso para crear eventos (administrador o un grupo con derechos de creación de eventos)
- Establece la categoría mediante el parámetro
category, pasando el id de la categoría como valor.
Eventos de transmisión en vivo
Para eventos en vivo, usa la funcionalidad de transmisión en vivo para que los miembros puedan ver un evento y participar en el chat al mismo tiempo.
Un evento de transmisión en vivo incluye:
- Un flujo de video (usando YouTube, por ejemplo)
- Un evento de calendario usando Discourse Events
- Un canal de chat adjunto creado automáticamente para el evento
Requisitos previos para eventos de transmisión en vivo
Para usar eventos de transmisión en vivo, debes tener chat enabled, ya que la transmisión en vivo crea un canal de chat para acompañar tu evento, además de discourse post event enabled y calendar enabled.
Si quieres usar transmisión en vivo, pero no quieres chat en otro lugar...
- Establece
chat allowed groupsen la configuración predeterminada, o incluyetrust_level_0para permitir que los usuarios nuevos participen en el chat de transmisión en vivo - Elimina grupos del ajuste
direct message enabled groupspara prevenir mensajes directos entre usuarios - No crees otros canales de chat
Crear un evento de transmisión en vivo
Para crear un evento de transmisión en vivo:
- Abre un nuevo tema.
- Selecciona el icono + en la barra de herramientas del compositor y haz clic en Create Event (si el evento no se había añadido ya a tu tema).
- Pega el enlace al video del evento (p. ej., una URL de YouTube) en el campo de ubicación/URL.
- Activa “livestream”
Entonces verás que el evento y la transmisión en vivo se han creado, junto con un canal de chat adjunto en el lado derecho.
En cuanto cualquier usuario haga clic en Going (Asistiré) en el evento, se unirá automáticamente al canal de chat, ¡lo que les permite participar en la conversación!
Transmisión en vivo de seminarios web de Zoom
Puedes usar la transmisión en vivo para albergar seminarios web de Zoom directamente en Discourse, para que los miembros puedan ver el evento y participar en el canal de chat adjunto sin salir de tu comunidad.
Requisitos previos para seminarios web de Zoom
Además de los requisitos previos de la transmisión en vivo, también necesitarás configurar los siguientes ajustes:
- Activa
livestream zoom enabled - Introduce tu clave de Zoom Meeting SDK en el ajuste
livestream zoom sdk key - Introduce tu secreto de Zoom Meeting SDK en el ajuste
livestream zoom sdk secret
Para obtener la clave y el secreto de Zoom Meeting SDK:
-
Ve a marketplace.zoom.us, haz clic en Develop (Desarrollar) y haz clic en Build app (Crear aplicación).
-
Cuando se te pregunte qué tipo de aplicación estás creando, elige General App (Aplicación General) y haz clic en Create (Crear).
-
Desde la página App Credentials (Credenciales de la aplicación) de la app, copia el Client ID (ID de cliente) (Clave SDK) y el Client Secret (Secreto de cliente) (Secreto SDK).
-
Bajo Embed (Incrustar), habilita el permiso Meeting SDK (SDK de Reunión).
-
En tu Discourse, ve a Admin → All site settings (Administrador → Todos los ajustes del sitio) e introduce los valores del paso 3 en
livestream zoom sdk keyylivestream zoom sdk secret.
Para que el seminario web de Zoom funcione correctamente en Discourse:
-
El seminario web no debe requerir registro ni contraseña para unirse.
-
Desactiva el chat integrado de Zoom para asegurar que toda la discusión ocurra en el único canal de chat de Discourse para mantener todo el chat en un solo lugar y asegurar que la conversación pueda continuar después de que termine el seminario web.
Crear un evento de transmisión en vivo de seminario web de Zoom
Para crear un evento de transmisión en vivo para tu seminario web de Zoom:
- Abre un nuevo tema, selecciona el icono + y haz clic en Create Event (Crear Evento).
- Pega tu enlace de seminario web de Zoom (p. ej.,
https://zoom.us/``...) en el campo URL/Location (Ubicación). - Activa Livestream (Transmisión en vivo).
- Establece el nombre del evento, hora de inicio, hora de fin y otros detalles del evento según desees.
- Publica el tema.
Al igual que otros eventos de transmisión en vivo, este evento se creará con un canal de chat de Discourse adjunto al que los miembros se unen automáticamente después de responder “Asistiré”.
Experiencia del miembro
Así es como tus miembros experimentarán el seminario web:
Antes del evento
Se muestra un botón Join Zoom (Unirse a Zoom) desde 30 minutos antes de que comience el evento. Fuera de esa ventana, el botón está deshabilitado con un mensaje que indica cuándo estará disponible.
Durante el evento
Una vez que los miembros hagan clic en Join Zoom, el seminario web se cargará en la página del tema (o, si el anfitrión aún no ha iniciado el evento, el miembro tendrá que esperar hasta que lo haga para ver el video).
El audio no se conecta automáticamente al unirse al seminario web; los asistentes necesitan hacer clic o tocar el icono de audio en la barra de herramientas de Zoom para conectarse. Esta es una limitación del SDK de Zoom y no se puede cambiar.
En móviles, el seminario web se abre en una vista de Zoom a pantalla completa (que también es accesible en escritorio añadiendo /zoom al final de la URL del tema del evento) con un botón flotante de Chat que pueden tocar para abrir un panel superpuesto de chat durante el evento.
Después del evento
El botón Join Zoom se oculta 10 minutos después de la hora de finalización del evento. El canal de chat sigue siendo accesible para los asistentes hasta que lo cierres.
Integraciones con Otros Plugins
Puedes usar un componente de este plugin con Right Sidebar Blocks. Querrás asegurarte de que la ruta deseada esté habilitada en el componente de Right Sidebar Blocks. El nombre del bloque será upcoming-events-list. Históricamente, se requerían ajustes adicionales en el propio plugin de Calendar, pero esto se ha simplificado.
Así es como aparecerá el calendario de la barra lateral por defecto.
Si no quieres la hora, puedes añadir un valor vacío de timeFormat en el ajuste de bloque del componente.
categoryId es la categoría sobre la que se mostrará el calendario.
postId es la publicación en la que colocas el calendario con [calendar][/calendar] ↩︎puede mostrar un selector de zona horaria en la esquina superior derecha del calendario. Falso por defecto, puedes habilitarlo con tzPicker=true ↩︎
puede ocultar los sábados y domingos del calendario. Verdadero por defecto. Puedes establecerlo en falso con weekends=false. ↩︎
defaultView establecerá la vista del calendario (día, semana, etc.). Se puede establecer como:
defaultView=agendaDay
defaultView=agendaWeek
defaultView=month (predeterminado)
defaultView=listNextYear ↩︎


















