Bloqueio de Categoria de Discurso

Muito fácil de configurar e acho que já está funcionando corretamente.

Pergunta aleatória: é possível injetar um ícone personalizado? Ou seja, um logotipo do site para usar como ícone em vez dos ícones do Font Awesome? Atualmente, tenho apenas um arquivo PNG.

1 curtida

É algo que você pode fazer com um pouco de CSS. Fiz algo semelhante, mas não guardei o código.

Se eu me lembro corretamente, você precisa de dois passos: ocultar o ícone personalizado (eu usei o ícone de estrela no meu tema personalizado) e, em seguida, adicionar a imagem personalizada antes do título.

.topic-list .category-idofyourcategory {
    .topic-status .d-icon-star {
        display: none;
    }
    .title::before {
        content: url("/your_image.png");
    }
}

Não reproduzi o código, então talvez você precise ajustar algumas coisas, mas isso deve te dar uma direção.

4 curtidas

Estou redirecionando para uma página do WordPress (meu provedor OAuth) que permite ao usuário se cadastrar para uma assinatura para visualizar o conteúdo ou apenas fazer login.

O problema é que, se eles fizerem login e voltarem ao fórum, não serão automaticamente logados no fórum (e terão que clicar no botão de Login novamente no fórum). O que preciso alterar para tentar garantir que eles sejam automaticamente logados? Há algo que eu possa adicionar ao meu link?

Se permitir redirecionar para uma URL, você deverá adicionar isso ao final da URL do seu Discourse: /session/sso?return_path=/top. Você pode alterar o caminho para onde o redirecionamento ocorre, mas isso deve efetuar o login do usuário para você.

2 curtidas

Excelente! Eu costumava fazer isso no Xenforo, então esperava que houvesse algo similar no Discourse. É ideal para comunidades pagas atraírem pessoas para as seções premium do fórum.

Muito obrigado,
Ray

P.S. @davidkingham David, dei uma olhada na sua comunidade. É uma das melhores que já vi. Parabéns e obrigado por compartilhar.

Ray

3 curtidas

Este plugin parece falhar na versão 2.6 beta 2. @fzngagan O Discourse não permite carregar nenhum tópico quando está ativado; veja os erros abaixo.

Mensagem (204 cópias relatadas)

ArgumentError (número incorreto de argumentos (1 fornecido, 0 esperado))
lib/topic_view.rb:59:in `initialize'
app/controllers/topics_controller.rb:81:in `new'
app/controllers/topics_controller.rb:81:in `show'
app/controllers/application_controller.rb:340:in `block in with_resolved_locale'
app/controllers/application_controller.rb:340:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:334:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
lib/middleware/request_tracker.rb:176:in `call'

Backtrace

plugins/discourse-category-lockdown/plugin.rb:41:in `check_and_raise_exceptions'
lib/topic_view.rb:59:in `initialize'
app/controllers/topics_controller.rb:81:in `new'
app/controllers/topics_controller.rb:81:in `show'
actionpack (6.0.3.2) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.0.3.2) lib/abstract_controller/base.rb:195:in `process_action'
actionpack (6.0.3.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.0.3.2) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.0.3.2) lib/active_support/callbacks.rb:112:in `block in run_callbacks'
app/controllers/application_controller.rb:340:in `block in with_resolved_locale'

Env
1 curtida

Isso também estava na minha lista de coisas para resolver. Parece que foi quebrado por essa alteração (há 4 dias)

5 curtidas

Obrigado, @RGJ, por apontar a causa.
Vou priorizar isso e analisar o caso pela manhã.

4 curtidas

@davidkingham @RGJ, @dylanb
Acabei de enviar uma correção. Por favor, atualizem e confirmem.

5 curtidas

@fzngagan Parece que está funcionando corretamente. Obrigado pela correção rápida.

4 curtidas

Embora o plugin não cause mais travamentos, ele não funciona mais em testes-passados.

O ícone aparece, mas você pode acessar os tópicos dentro de uma categoria normalmente.

Testei isso ao ter um plugin funcional na versão 2.5 e, ao migrar para testes-passados, ele quebrou.

Edição: isso parece ser um problema de multisite. A função check_and_raise_exceptions é apenas pré-acrescentada quando o plugin é ativado no mestre do multisite. Além disso, o Discourse precisa ser reiniciado após a ativação do plugin.

3 curtidas

Tenho uma pergunta e um pedido.

Pergunta: quão difícil seria permitir que os rastreadores vejam o conteúdo? Não consigo encontrar uma maneira de acessar se a solicitação foi feita por um rastreador (ou a string do agente de usuário) dentro do guardião para usuários anônimos. Alguém tem alguma orientação? Faria um PR para isso se soubesse como obter essas informações.

Pedido: @fzngagan, você poderia dar uma olhada no problema de multisite que foi introduzido recentemente? Eu poderia fazer um PR, embora seria uma mudança trivial.

2 curtidas

Se você desativar o JavaScript no seu navegador, poderá ver o layout de rastreamento (portanto, seus usuários também podem :wink: ).
Fiz uma branch de POC chamada crawl que você pode testar e aprimorar. Se funcionar, colocaremos isso atrás de uma configuração do site que estará desativada por padrão.

Nota: não testei a branch, mas estou feliz em ajudar :slight_smile:

Ficarei feliz em aceitar um PR aqui. Ainda não estou familiarizado com coisas de multisítio :slight_smile:

2 curtidas

Eu fiz o pull request.

1 curtida

Atualizei para a versão 2.6.0.beta5 do Discourse e parece que estou com outro problema com este plugin. Alguma ideia, @fzngagan?

Quando tento navegar para uma “categoria restrita” como um usuário não logado, só vejo um indicador giratório (e nunca sou redirecionado). Parece que está adicionando “Você não tem permissão para visualizar o recurso solicitado” à URL também.

Aqui estão os tópicos de exemplo:

1 curtida

Alguém tem alguma ideia aqui?

1 curtida

@dylanb
Sim, percebo que isso está quebrado há algum tempo e precisa de uma refatoração. Provavelmente, darei uma olhada no final desta semana.

2 curtidas

Ok, ótimo. Obrigado!

1 curtida

@dylanb
Aqui está meu PR para a correção. Pedi uma revisão ao @RGJ antes de mesclá-lo.

4 curtidas

Show – você pode postar aqui quando for mesclado?

1 curtida