I guess best behaviour would be to start the composer with empty category if the user does not have the permission to create new topic in the current one? Potentially with a modal and a notice about such.
Eu também queria ter essa funcionalidade, então fiz um fork do repositório e fiz com que ele mostrasse o botão “Novo Tópico” para usuários anônimos e logados. Se um usuário anônimo clicar no botão, ele será redirecionado para o modal de login/inscrição.
Há alguns nomes de classes desatualizados, então os estilos não aparecem como pretendido. Adicionei um PR para atualizá-los: FIX: update declarations by nolosb · Pull Request #6 · discourse/discourse-new-topic-button-theme-component · GitHub
É possível atualizar este plugin para a nova versão?
Acabei de mesclar um refatoramento deste componente para que ele funcione com estas atualizações: Upcoming Header Changes - Preparing Themes and Plugins
O componente deve funcionar como antes, com algumas pequenas melhorias (refletirá o estado do rascunho e reagirá às permissões atuais de categoria e tag). Se notar algum novo problema, por favor, nos informe.
Eu também queria ter essa funcionalidade, então fiz um fork do repositório e fiz com que ele mostrasse o botão “Novo Tópico” para usuários anônimos e logados. Se um usuário anônimo clicar no botão, ele será redirecionado para o modal de login/cadastro.
Acabei de adicionar uma nova configuração show_to_anon (desabilitada por padrão) que fará isso.
Quão “viável” seria adicionar um menu suspenso semelhante ao do componente de assistente suspenso de nolo?
Como estamos usando o assistente personalizado para criar novos tópicos em categorias específicas, gostaríamos basicamente de vinculá-los aos menus suspensos. Além disso, também gostaríamos de adicionar alguns links exclusivos para a equipe (como “Nova categoria” e “Novo grupo”) ao botão.
Olá, não consegui usar o ícone "lápis" do fontawesome free neste componente, mesmo após adicioná-lo às configurações de "subconjunto de ícones svg". Alguma ideia?
Ícone gratuito do Font Awesome “pencil”
Eu não acho que exista um ícone pencil gratuito na versão 5.
We’re not on Font Awesome 6 yet, so you’ll need to search the version 5 set for available icons here: Find the Perfect Icon for Your Project in Font Awesome 5 | Font Awesome It looks like that icon was renamed shop in version 6, but it did exist in version 5 with a different name: store-alt. So if you update additional icons and custom tab icon to use store-alt it should work!
Eu acho que é o mesmo para pencil na v5, é pencil-alt.
Eu acho que é o mesmo para o lápis na v5, é
pencil-alt
Obrigado! Funciona!
Uma postagem foi dividida em um novo tópico: Sem botão de novo tópico
Solicitação: adicionar uma opção para definir as cores do botão (fundo, texto + ícone) para temas claro e escuro. Como novos tópicos fazem parte do crescimento de uma comunidade, ter um botão colorido tem mais impacto.
Obrigado
É bem fácil de fazer com CSS:
Use this code, changing the color obviously. #new-create-topic { background-color: red; }
(você pode direcionar temas escuros e claros com CSS)
editar: adicionando um exemplo adequado
#new-create-topic {
background-color: light-dark(red,green);
}
Definirá a cor do botão como vermelho em um tema claro e verde em um tema escuro.
Ainda não estou familiarizado com CSS no Discourse. Estou familiarizado com CSS, mas ainda não comecei a explorá-lo dentro do Discourse.
Como/onde eu adiciono isso?
Ainda acho que isso poderia ser um recurso para evitar adicionar mais complexidade e, para pessoas que não estão familiarizadas com CSS, isso apenas torna o componente mais fácil de personalizar.
Como/onde eu adiciono isso?
Em seu(s) tema(s) ou em um novo componente de tema — que então deve ser incluído em seu(s) tema(s):
Eu adicionei o código CSS na minha postagem acima.
Eu também estava testando :hover e funciona para o botão e o texto, mas não para o ícone, a menos que eu passe o mouse sobre o próprio ícone. Você sabe como direcionar o ícone ao passar o mouse sobre o botão, mesmo que o mouse não esteja sobre o ícone?
#new-create-topic:hover {
background-color: light-dark(red,red);
color: light-dark(red,white);
}
#new-create-topic .d-icon:hover {
color: light-dark(red,white);
}
Sua segunda regra significa que você está direcionando o ícone ao passar o mouse sobre ele, não o botão.
Usando a sintaxe SCSS, que
#new-create-topic:hover {
background-color: light-dark(red,red);
color: light-dark(red,white);
}
#new-create-topic:hover .d-icon {
color: light-dark(red,white);
}
(também não há necessidade de light-dark(red,red); se você usar a mesma cor para claro e escuro)
Eu recomendaria SCSS, pois é mais fácil organizar nosso código bacana, mas isso é algo novo para aprender 😄
#new-create-topic:hover {
background-color: light-dark(red,red);
.d-icon, & {
color: light-dark(red,white);
}
}
Sua segunda regra significa que você está visando o ícone ao passar o mouse sobre ele, não o botão.
Você está certo. Foi mal… Obrigado!
também não há necessidade de
light-dark(red,red);se você usar a mesma cor para claro e escuro
Estes são apenas testes. Na verdade, estou usando o tema Padrão e não sei se esse tema tem ambas as opções?
Em relação ao SCSS, aprendi há alguns anos, mas foi algo que nunca usei de verdade, já que não sou desenvolvedor. Uso HTML e CSS com bastante frequência, então estou um pouco mais familiarizado com esses dois.
Encontrei este código para fazer esta modificação, mas não tenho certeza se esta é a melhor maneira de fazê-lo:
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
const newTopicButton = document.querySelector('.header-create-topic');
const draftsButton = document.querySelector('.topic-drafts-menu-trigger');
if (newTopicButton && draftsButton && !document.querySelector('.fk-header-buttons')) {
const wrapper = document.createElement('div');
wrapper.className = 'fk-header-buttons';
const parent = newTopicButton.parentNode;
parent.insertBefore(wrapper, newTopicButton);
wrapper.appendChild(newTopicButton);
wrapper.appendChild(draftsButton);
}
});
</script>

