| Resumo | Discourse Calendar and Events adiciona recursos dinâmicos e interativos de calendário e eventos ao seu site Discourse. | |
| Guia de Instalação | Este plugin é integrado ao núcleo do Discourse. Não há necessidade de instalar o plugin separadamente. |
Habilitando Calendário e Eventos
O plugin Calendário e Eventos pode ser habilitado por meio da alternância (toggle) ou por meio de suas configurações, ambos acessíveis na página admin/plugins:
Recursos
Talvez não surpreendentemente, o Discourse Calendar and Events adiciona tanto os recursos de calendário quanto de eventos ao seu site Discourse. Com eles, você pode criar calendários de tópicos individuais para acompanhar ocasiões importantes ou cronogramas, exibir calendários em categorias, adicionar um calendário de feriados para marcar férias, ausências ou dias de licença médica, criar tópicos de eventos interativos, bem como mostrar um resumo de calendário de fácil acesso de todos os seus eventos futuros.
Calendários
Calendários personalizados podem ser criados em vários tópicos, e aqueles que você deseja dar maior visibilidade podem ser exibidos acima da lista de tópicos de uma categoria.
Você pode encontrar informações mais detalhadas sobre como criar e usar calendários em:
Eventos
O recurso de Eventos permite que elementos interativos sejam inseridos em tópicos, que seus membros podem usar para se inscrever para assistir ou participar das atividades da sua comunidade. Todos eles são resumidos em um calendário dedicado em todo o site, com a opção de adicionar um link de fácil acesso ao seu menu de navegação. Você pode encontrar mais informações sobre como criar e usar este recurso em:
Isso não deve ser confundido com o plugin de Eventos do Pavilion (note o plural)
Configurações do Calendário
| Nome | Descrição |
|---|---|
| calendar enabled | Habilita o plugin discourse-calendar. Isso adicionará suporte para a tag [calendar][/calendar] na primeira postagem de um tópico. |
| holiday calendar topic id | ID do tópico do calendário de férias/ausência da equipe. |
| holiday status emoji | Define o emoji usado para o status de férias. |
| delete expired event posts after | Postagens com eventos expirados serão automaticamente excluídas após (n) horas. Defina como -1 para desabilitar a exclusão. |
| all day event start time | Eventos que não tiverem hora de início especificada começarão neste horário. O formato é HH:mm. Para 6:00 da manhã, insira 06:00 |
| all day event end time | Eventos que não tiverem hora de término especificada terminarão neste horário. O formato é HH:mm. Para 6:00 da tarde, insira 18:00 |
| calendar categories | Exibe um calendário no topo de uma categoria. As configurações obrigatórias são categoryId e postId. ex: categoryId=6;postId=453[1] Outras configurações válidas: tzPicker[2], weekends[3] e defaultView[4]. |
| calendar categories outlet | Permite alterar qual saída deve exibir o calendário da categoria. |
| working days | Define os dias úteis. Você pode exibir a disponibilidade de um grupo usando a tag timezones em uma postagem, ex: [timezones group=admins][timezones] |
| working day start hour | Hora de início das horas do dia útil. |
| working day end hour | Hora de término das horas do dia útil. |
| close to working day hours extension | Define o tempo de extensão nas horas do dia útil para destacar os fusos horários. |
| calendar automatic holidays enabled | Define automaticamente o status de férias com base na região do usuário (nota: você pode desabilitar feriados automáticos específicos nas configurações do plugin) |
| map events title | Mapeia o título do calendário da barra lateral com base na categoria. Padrão é “Próximos eventos” |
Configurações de Eventos
| Nome | Descrição |
|---|---|
| discourse post event enabled | Habilita os recursos de Evento. Nota: também precisa que calendar enabled esteja habilitado. |
| discourse post event allowed on groups | Grupos que têm permissão para criar eventos. |
| displayed invitees limit | Limita o número de convidados exibidos em um evento. |
| display post event date on topic title | Exibe a data do evento após o título do tópico. |
| use local event date | Usa a data local após o título do tópico em vez do tempo relativo. |
| discourse post event edit notifications time extension | Estende (em minutos) o período após o fim de um evento quando os convidados com status going ainda recebem notificações de edição na postagem original. |
| discourse post event allowed custom fields | Permite que cada evento defina o valor de campos personalizados. |
| events calendar categories | Exibe um calendário de eventos no topo de uma categoria. |
| sort categories by event start date enabled | Habilita a ordenação dos tópicos da categoria pela data de início do evento. |
| disable resorting on categories enabled | Permite que categorias desabilitem a capacidade dos usuários de ordenar na categoria de eventos. |
| sidebar show upcoming events | Exibe o link de próximos eventos na barra lateral sob ‘Mais’. Requer post event enabled |
| map events to color | Atribui uma cor de evento a uma tag ou categoria específica |
![]()
O endpoint
discourse-post-event/events.jsonagora possui um parâmetro adicionado para alternar entre resposta simples e detalhada. Para obter a resposta detalhada, você pode adicionar?include_details=true:
/discourse-post-event/events.json?include_details=true
Criando Eventos via API
Você pode criar eventos via POST /posts.json com BBCode [event][/event] no campo raw. Aqui estão os detalhes sobre como configurar sua solicitação de API:
- Use
POST /posts.jsoncom o parâmetroraw - Sintaxe do 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] - Uma nova linha literal
\né obrigatória entre as tags de abertura e fechamento - Aspas duplas devem ser escapadas ao usar JSON (
\") - A conta de usuário da API deve ter permissão para criar eventos (admin ou um grupo com direitos de criação de eventos)
- Defina a categoria via o parâmetro
category, passando o id da categoria como valor.
Eventos de Transmissão ao Vivo
Para eventos ao vivo, use a funcionalidade de transmissão ao vivo para permitir que os membros assistam a um evento e participem do chat ao mesmo tempo.
Um evento de transmissão ao vivo inclui:
- Uma transmissão de vídeo (usando YouTube, por exemplo)
- Um evento de calendário usando Discourse Calendar and Events
- Um canal de chat acompanhante criado automaticamente para o evento
Pré-requisitos para eventos de transmissão ao vivo
Para usar eventos de transmissão ao vivo, você deve ter chat enabled, já que a transmissão ao vivo cria um canal de chat para acompanhar seu evento, além de discourse post event enabled e calendar enabled.
Se você quiser usar transmissão ao vivo, mas não quiser chat em outros lugares...
- Defina
chat allowed groupspara a configuração padrão, ou incluatrust_level_0para permitir que usuários totalmente novos participem do chat da transmissão ao vivo - Remova grupos da configuração
direct message enabled groupspara impedir mensagens diretas entre usuários - Não crie outros canais de chat
Criando um evento de transmissão ao vivo
Para criar um evento de transmissão ao vivo:
- Abra um novo tópico.
- Selecione o ícone + na barra de ferramentas do compositor e clique em Create Event (criar evento) (se o evento não tiver sido adicionado ao seu tópico ainda).
- Cole o link do vídeo do evento (por exemplo, uma URL do YouTube) no campo local/URL.
- Ative a opção “livestream” (transmissão ao vivo)
Você verá então que o evento e a transmissão ao vivo foram criados, junto com um canal de chat acompanhante no lado direito.
Assim que qualquer usuário clicar em Going (Vou) no evento, eles entrarão automaticamente no canal de chat, permitindo que participem da conversa!
Transmissão ao Vivo de Webinars do Zoom
Você pode usar a transmissão ao vivo para hospedar webinars do Zoom diretamente no Discourse, para que os membros possam assistir ao evento e participar do canal de chat acompanhante sem sair da sua comunidade.
Pré-requisitos para webinars do Zoom
Além dos pré-requisitos de transmissão ao vivo, você também precisará configurar as seguintes configurações:
- Ative
livestream zoom enabled - Insira sua chave SDK da Reunião do Zoom na configuração
livestream zoom sdk key - Insira seu segredo SDK da Reunião do Zoom na configuração
livestream zoom sdk secret
Para obter a chave e o segredo do SDK da Reunião do Zoom:
-
Acesse marketplace.zoom.us, clique em Develop (Desenvolver) e clique em Build app (Criar aplicativo).
-
Quando perguntado que tipo de aplicativo você está criando, escolha General App (Aplicativo Geral) e clique em Create (Criar).
-
Na página App Credentials (Credenciais do Aplicativo) do aplicativo, copie o Client ID (ID do Cliente) (Chave SDK) e Client Secret (Segredo do Cliente) (Segredo SDK).
-
Em Embed (Incorporação), habilite a permissão Meeting SDK (SDK de Reunião).
-
No seu Discourse, vá para Admin → All site settings (Admin → Todas as configurações do site) e insira os valores da etapa 3 em
livestream zoom sdk keyelivestream zoom sdk secret.
Para que o webinar do Zoom funcione corretamente no Discourse:
-
O webinar não deve exigir registro ou senha para entrar.
-
Desabilite o chat de webinar integrado do Zoom para garantir que toda a discussão aconteça no único canal de chat do Discourse, mantendo todo o chat em um só lugar e garantindo que a conversa possa continuar após o término do webinar.
Criando um evento de transmissão ao vivo de webinar do Zoom
Para criar um evento de transmissão ao vivo para seu webinar do Zoom:
- Abra um novo tópico, selecione o ícone + e clique em Create Event (Criar Evento).
- Cole o link do seu webinar do Zoom (por exemplo,
https://zoom.us/``...) no campo URL/Location (Localização). - Ative Livestream (Transmissão ao Vivo).
- Defina o nome do evento, hora de início, hora de término e outros detalhes do evento conforme desejado.
- Publique o tópico.
Como outros eventos de transmissão ao vivo, este evento será criado com um canal de chat do Discourse acompanhante que os membros entrarão automaticamente após confirmarem presença como “Going” (Vou).
Experiência do Membro
Veja como seus membros experimentarão o webinar:
Antes do evento
Um botão Join Zoom (Entrar no Zoom) é exibido a partir de 30 minutos antes do início do evento. Fora dessa janela, o botão está desabilitado com uma mensagem indicando quando estará disponível.
Durante o evento
Assim que os membros clicarem em Join Zoom (Entrar no Zoom), o webinar será carregado na página do tópico (ou, se o anfitrião ainda não tiver iniciado o evento, o membro precisará esperar até que isso aconteça para ver o vídeo).
O áudio não se conecta automaticamente ao entrar no webinar; os participantes precisam clicar ou tocar no ícone de áudio na barra de ferramentas do Zoom para se conectar. Esta é uma limitação do SDK do Zoom e não pode ser alterada.
No mobile, o webinar abre em uma visualização do Zoom em tela cheia (que também é acessível no desktop adicionando /zoom ao final da URL do tópico do evento) com um botão flutuante Chat que eles podem tocar para abrir um painel de sobreposição de chat durante o evento.
Após o evento
O botão Join Zoom (Entrar no Zoom) fica oculto 10 minutos após a hora de término do evento. O canal de chat permanece acessível aos participantes até que você o feche.
Integrações com Outros Plugins
Você pode usar um componente deste plugin com Right Sidebar Blocks. Você precisará garantir que a rota desejada esteja habilitada no componente Right Sidebar Blocks. O nome do bloco será upcoming-events-list. Historicamente, eram necessárias configurações adicionais no próprio plugin do Calendário, mas isso foi simplificado.
É assim que o calendário da barra lateral aparecerá por padrão.
Se você não quiser o horário, pode adicionar um valor vazio para timeFormat na configuração do bloco do componente.
Hospedado por nós? Este plugin está disponível em nossos níveis Business e Enterprise Calendar | Discourse - Civilized Discussion
categoryId é a categoria onde o calendário será exibido no topo.
postId é a postagem em que você coloca o calendário com [calendar][/calendar] ↩︎pode exibir um seletor de fuso horário no canto superior direito do calendário. Falso por padrão, você pode habilitá-lo com tzPicker=true ↩︎
pode ocultar sábados e domingos do calendário. Verdadeiro por padrão. Você pode defini-lo como falso com weekends=false. ↩︎
defaultView definirá a visualização do calendário (dia, semana, etc.). Pode ser definido como:
defaultView=agendaDay
defaultView=agendaWeek
defaultView=month (padrão)
defaultView=listNextYear ↩︎


















