Usando um componente de tema em vez de um iframe para criar um temporizador de tópico

Provavelmente, o melhor é abandonar o iframe por completo. Para um desafio pessoal divertido, criei um conceito preliminar que aplica o timer por meio de um componente de tema. No momento, ele adiciona um timer ao primeiro post de um tópico e possui alguns botões de controle. Atualmente, ele aparece assim:

Se isso for algo que você gostaria que eu desenvolvesse, me avise. É uma customização interessante para trabalhar.

5 curtidas

Obrigado @tshenry por investigar isso. A solução do iframe foi apenas a solução “rápida e suja” para fazermos a funcionalidade do temporizador funcionar. Mas SIM, estamos ABSOLUTAMENTE interessados no temporizador personalizado com o qual você estava experimentando. Sua solução parece muito mais bonita e limpa… mas é algo muito além do meu escopo em termos de minhas habilidades de programação. Então, novamente, sim, estou muito interessado em ver o que você consegue criar e poder aplicá-lo ao meu fórum.

1 curtida

Tudo bem, soa bom. Vou continuar trabalhando nisso e darei um retorno quando tiver algo pronto para mostrar.

3 curtidas

@tshenry Ao construir este tema, gostaria de saber se é possível incluir a opção de selecionar a qual categoria ou subcategorias aplicá-lo? Não gostaria que este tema fosse aplicado a todos os posts do meu fórum, mas apenas a algumas categorias específicas.

Por exemplo, em nosso Fórum, gostaria que o Tema Timer fosse aplicado apenas aos posts na categoria “Provas Anteriores”. Idealmente, adoraria poder selecionar exatamente quais posts da categoria “Provas Anteriores” devem receber essa aplicação, já que o recurso de Timer seria apropriado em 99% dos casos, mas há alguns posts nos quais ter um Timer seria inadequado. No entanto, isso é algo que com certeza posso contornar, movendo os 1% dos posts onde o Timer é inadequado para outro lugar (outra Categoria) ou até mesmo excluindo-os.

1 curtida

Que interessante você mencionar isso! Acabei de adicionar a funcionalidade de especificar uma tag como fator determinante para quais tópicos o cronômetro exibirá. Isso evita que ele seja aplicado a tópicos “sobre” ou a qualquer outro tópico de uma categoria específica que você não queira que o temporizador apareça:

Isso funciona para você ou usar uma tag seria problemático no seu cenário?

Já que estamos falando disso, há algum outro aspecto sobre isso que eu deva considerar? Está quase pronto, estou apenas refinando o código e tentando testá-lo thoroughly. Deverá estar pronto ainda neste fim de semana ou em algum momento da próxima semana :slightly_smiling_face:

2 curtidas

É assim que está no momento, a propósito:

2 curtidas

Acho que isso ficou perfeito! O identificador da tag também é uma solução perfeita para a minha pergunta acima. Excelente trabalho! Obrigado.

1 curtida

Certo, o componente de tema foi lançado! Por favor, me avise se encontrar algum problema ou tiver ideias sobre como ele pode ser melhorado.

Além disso, para quem estiver interessado em resolver a questão original sobre como desativar a rolagem do iframe, basta adicionar este código na aba </head> de um tema de sua escolha:

<script type="text/discourse-plugin" version="0.8.18">
   api.decorateCooked($elem => $elem.children('iframe').attr("scrolling", "no"));
</script> 

(Um agradecimento especial a @vinothkannans por destacar a utilidade de decorateCooked() :grinning:)

3 curtidas