Olá a todos, eu possuo e administro o que acredito ser um dos maiores fóruns baseados em Drupal da internet, com quase 2 milhões de posts. O Drupal 7 está morrendo, e o Drupal 8/9 está se tornando mais um framework para programadores web do que um sistema de gerenciamento de conteúdo pronto para uso. As novas versões do Drupal simplesmente não oferecem os módulos de terceiros que preciso para que meu fórum continue com suas funções básicas, e graças às maravilhas do PHP e às muitas outras peculiaridades do Drupal, a atualização seria tão infernal quanto migrar para uma plataforma completamente diferente. Então, terei que engolir o sapo e migrar para outra coisa. Tenho quase certeza de que terá que ser o Discourse devido a um aspecto único do estilo da minha comunidade de fórum: sou o único moderador, e não é meu trabalho em tempo integral. Então, ao longo dos anos, usei os frameworks flexíveis Rules e Flag no Drupal para criar um sistema fragmentado de moderação comunitária de spam e posts ofensivos, com remoção automática de posts e/ou fechamento de contas de usuários em certos limites com base em quão novo é o usuário e quantos usuários o sinalizaram, levando em consideração também a novidade e a atividade recente de sinalização dos usuários que o sinalizam. Em outras palavras, é quase exatamente o que o Discourse implementou. Fico muito feliz em ver que o Discourse reconheceu o valor da moderação comunitária e implementou um sistema tão abrangente e bem pensado “out-of-the-box”. O Drupal 7 foi e ainda é o único CMS flexível o suficiente para permitir esse tipo de funcionalidade personalizada sem ser um desenvolvedor experiente, o que eu não sou. Então, parece que vou migrar para o Discourse. No entanto, tenho algumas preocupações.
- Sistema de moderação comunitária: Nosso fórum está atualmente avaliando uma instalação “playground” do Discourse. Fiquei impressionado com o quão abrangente e bem pensado é todo o sistema. Mas a comunidade notou algumas peculiaridades:
- Eu realmente não gosto de como ele esconde posts automaticamente removidos atrás de “Ver conteúdo ignorado”. Se um post é ruim o suficiente para ser removido pela comunidade, ele é altamente ofensivo ou spam puro, e eu não quero que visitantes ou usuários tenham a opção de vê-lo. Isso é especialmente problemático no caso de tópicos que são spam ou têm um título ofensivo. E os rastreadores de mecanismos de busca não veriam o conteúdo oculto de spam? É possível configurar o tempo sem intervenção do usuário antes que um post de spam oculto automaticamente seja completamente excluído da vista pública? E quanto aos tópicos e posts que foram sinalizados pela comunidade como inadequados?
- Li aqui que “Nota: Todos os valores mencionados acima são as configurações padrão. Eles podem ser alterados pelos administradores nas configurações do site” em relação aos limites que levam à remoção de posts e/ou silenciamento de usuários, mas não estou vendo essas configurações granulares na minha instância de teste do Discourse. Tudo o que consigo encontrar é “sensibilidade de ocultar post” e “sensibilidade de silenciar novo usuário”, mas não entendo a que essa sensibilidade realmente se refere em termos concretos.
- Eu gostaria de remover o motivo “fora de tópico” para sinalizar um post. Nossa comunidade de fórum é muito relaxada nesse sentido e tem uma cultura de fórum onde posts fora de tópico são muito comuns e bem aceitos. Atualização: Parece que isto pode funcionar.
- Migração de mensagens privadas: O fórum atual tem quase um milhão de threads de mensagens privadas usando o módulo Drupal 7 privatemsg, e o script de migração Drupal → Discourse não o lida. Isso parece uma omissão importante, porque, apesar de ser um módulo de terceiros (no estilo típico do Drupal), é basicamente a funcionalidade de mensagens privadas de facto que os administradores do Drupal 7 usam.
- Conversão de formato de post: Infelizmente, o fórum atual usa uma mistura de posts em HTML puro e Textile. Entendo que o script de migração pode lidar com HTML puro (por favor, corrija-me se estiver errado), mas não com Textile. Se possível, gostaria de converter os posts Textile para HTML ou Markdown, o que for mais fácil. Fui informado de que o Pandoc pode ser integrado ao script de migração, mas que isso também aumentaria massivamente o tempo de migração. Procurei módulos Drupal para converter o formato de posts existentes, mas só encontrei isto, que não suporta processamento em lote para a quantidade massiva de posts, e não suporta o paradigma de “comentários” do Drupal, que compõem a vasta maioria dos “posts” que precisam ser convertidos. Então, pensei em fazer algum tipo de find/replace offline no arquivo de dump do banco de dados com
sed, semelhante ao que é descrito aqui. Sugestões ou soluções seriam bem-vindas. Sou um usuário experiente de Linux e trabalhei com expressões regulares intermitentemente, mas ainda não sou bom nelas. Edição: Isto é uma opção interessante para encontrar/substituir assim que os dados brutos estiverem no Discourse. - Anúncios: Fico muito feliz em ver que o Plugin de Anúncios para Discourse parece ter amadurecido muito desde a última vez que o examinei. Entendo que os anúncios internos me permitirão colocar banners de imagem em locais específicos com um link de destino ao serem clicados, e que se vários anúncios forem atribuídos ao mesmo local, eles serão selecionados aleatoriamente, correto? No entanto, não tenho ideia de como lidar com o paradigma móvel. No meu fórum atual, tenho um banner horizontal superior e três banners verticais na barra lateral esquerda, todos os quais não seriam viáveis para usuários móveis na interface responsiva do Discourse. Edição: Pode ser que eu precise modificar o Plugin de Anúncios para minhas necessidades, oferta paga aqui.
- Permalinks: O esquema de URL do Drupal tem dois componentes principais:
/node/XXXXXXXe links para comentários específicos dentro desses nós/comment/YYYYYYY#comment-YYYYYYY(YYYYYYYé o mesmo em ambas as ocorrências). O script de migração Drupal 7 → Discourse manterá automaticamente esses links para que os links em posts para outros tópicos ou posts ainda funcionem e mantenham o SEO? E quanto a um arquivositemap.xmlpara os mecanismos de busca? - Processamento em lote: Durante a migração, ele será executado em lotes? O que acontece se ele atingir um erro? Após corrigi-lo, ele continuará ou exigirá que comece do início?
- Usuários de dispositivos Apple antigos: Claro, entendo os perigos de usar navegadores desatualizados. Para Windows e dispositivos Android antigos, quase sempre há uma maneira de instalar um navegador moderno compatível com o Discourse. Mas estou preocupado com um de meus usuários que afirma ter um Mac de 2015 que não recebe atualizações e não tem como instalar nada além da versão antiga do Safari, que está mostrando avisos de depreciação com o Discourse. Eu realmente sei muito pouco sobre dispositivos Apple, além do fato de que eles são muito mais restritos. É realmente tão difícil instalar outros navegadores modernos neles?
- Armazenamento de imagens / uploads: Meus usuários e eu adoramos a facilidade de fazer upload de imagens no Discourse, mas estou um pouco preocupado com o espaço de armazenamento e os custos. A melhor opção a longo prazo seria montar um volume de armazenamento de rede no VPS, se necessário. Se eu configurar inicialmente o Discourse com o local de upload padrão, isso causará problemas para movê-lo para um volume diferente mais tarde?
- Backups:
- Gostaria que houvesse um sistema para backups diferenciais ou, melhor ainda, deduplicados. Atualmente uso o Duplicity com Amazon S3 para meu fórum Drupal, e os custos são incrivelmente baixos para um histórico muito longo de revisões. Alguém sabe de imediato em quanto tempo após a criação de um arquivo S3 uma regra pode fazer a transição para o Glacier?
- A interface de backup do Discourse permite excluir arquivos no Amazon S3? Sei que é um pouco extremo, mas eu gostaria de desativar essa funcionalidade, pois configurei meus buckets S3 com apenas permissões PUT, GET e LIST para impedir que um hacker no sistema comprometido exclua meus backups remotos. Então, uma regra de ciclo de vida do S3 entra em vigor e exclui os arquivos mais antigos do lado do servidor após um certo tempo.
- Plugin Stop Forum Spam: Não quero usar Akismet, mas sempre tive bons resultados com o StopForumSpam.com para evitar a criação de muitas contas de spammers.
Alguém sabe se o plugin para Discourse tem limites configuráveis para quantos hits um nome de usuário, IP ou endereço de e-mail deve ter no banco de dados para ser rejeitado?Edição: Não, não tem. Solicitado aqui. Infelizmente, também não intervém para realmente impedir a criação de contas se eles tiverem hits suficientes no banco de dados do SFS, como faz no Drupal.
Desculpe pelo post longo. Agradeço antecipadamente a todos pela visão, e muitos agradecimentos a toda a equipe do projeto Discourse por este excelente produto.