O Chat traz canais públicos, threads e mensagens diretas para o fórum, ligados às partes do Flarum que você já usa. Um canal vinculado a uma categoria herda as permissões dessa categoria, as menções chegam pelas notificações do próprio Flarum, e uma conversa pode ser citada direto em uma discussão quando vale a pena guardá-la.
Ele existe em dois lugares ao mesmo tempo: uma gaveta sobre a página que você estiver lendo e uma página em tela cheia, quando a conversa merece a janela inteira. Nenhum dos dois é um modo que você precisa escolher de antemão - a gaveta te acompanha pelo fórum sem descartar o que está aberto.



Canais
Canais de categoria e mensagens diretas ficam na mesma barra lateral. Um canal pode ser público, privado por convite, ou aberto para leitura e restrito à equipe para escrita - um canal de anúncios em que todo mundo ainda reage. Vincule um canal a uma tag e ele herda a permissão viewForum dessa tag, de modo que um canal de uma categoria restrita fica restrito pela mesma regra que já governa a categoria.
Cada canal tem suas próprias configurações: threads ligadas ou desligadas, menções ao canal inteiro, entrada automática e quem pode publicar.
Threads
Qualquer mensagem pode ramificar. A thread abre ao lado do canal com um campo de escrita próprio, e a mensagem de origem mantém uma faixa com a contagem de respostas e a última linha, de modo que uma conversa ramificada fica visível a partir do fluxo principal, em vez de escondida atrás dele.

Tudo o que uma mensagem pode fazer
Reações, respostas com o trecho citado, menções a uma pessoa ou ao canal inteiro, edições com histórico visível, fixações, favoritos e anexos. As imagens abrem em um visualizador, e não em uma nova aba.
Mensagens fixadas ganham uma faixa abaixo do cabeçalho e um painel próprio; os favoritos ganham uma página que atravessa todos os canais.

Discussões dentro do chat
Um canal vinculado a uma categoria pode anunciar cada nova discussão iniciada ali, publicada pelo bot do chat - cujo nome e avatar você define, ou que você pode substituir por uma conta real.

No caminho inverso, selecione uma sequência de mensagens e cite-as em uma nova discussão. Uma conversa que cresceu além do chat não precisa ser redigitada.
Moderação
Excluir e restaurar, mover mensagens entre canais e uma fila de denúncias própria do chat. As denúncias carregam um motivo e as palavras de quem denunciou, chegam aos administradores como notificação e se encerram sozinhas quando a mensagem denunciada é excluída.

O modo lento define quanto tempo cada pessoa espera entre mensagens em um canal - cinco segundos para acalmar uma sala, cinco minutos para mudar o propósito dela. Uma permissão separada isenta quem precisa responder sem esperar.

Busca
Em todos os canais que você pode ler, ou restrita a um deles.

No celular
A barra lateral e a conversa são telas separadas, em vez de painéis lado a lado.

Administração
Todos os limites estão no painel administrativo: tamanho da mensagem, limite de envio, retenção para canais e para mensagens diretas, tamanho de upload, o som de notificação e o nome e o ícone do chat no cabeçalho.

Os webhooks de entrada são compatíveis com o Slack, então qualquer coisa que já publique no Slack pode publicar em um canal.

As permissões são granulares: usar o chat, iniciar mensagens diretas, criar e editar canais, enviar arquivos, reagir, enviar figurinhas, mencionar o canal inteiro, iniciar threads, fixar, denunciar, ignorar o modo lento e moderar.

Instalação
composer require ramon/chat
php flarum cache:clear
php flarum assets:publish
Ative na página de Extensões e conceda Usar o chat aos grupos que devem tê-lo - nada é concedido ao Visitante, e as rotas /chat respondem 404 sem essa permissão.
Tempo real
Instale o flarum/realtime e as mensagens chegam pelo websocket. Sem ele, o chat faz polling, e a conversa continua funcionando - só que alguns segundos atrás.
Combina bem com
- flarum/tags - canais vinculados a categorias
- flarum/gdpr - exportação e apagamento dos dados do chat
- ramon/stickers e ramon/verified - renderizam dentro das mensagens do mesmo jeito que nas postagens
Créditos
Feito por Ramon Guilherme e Push-EDX. O modelo de interação deve muito ao Discourse Chat e ao Discord.
Licença
MIT. Relatos de bugs e ideias no rastreador de issues.