| Resumo | Adiciona botão ou texto em qualquer lugar | |
| Repositório | https://github.com/literatecomputing/discourse-custom-components | |
| Guia de Instalação | Como instalar um tema ou componente de tema | |
| Novo em Temas do Discourse? | Guia para iniciantes sobre como usar Temas do Discourse |
Instalar este componente de tema
Adiciona um botão de link ou texto arbitrário em qualquer plugin outlet. (Ignore as marcas d’água nas imagens–tirei essas capturas de tela em um site de teste/staging.)
Para ver onde estão os plugin outlets, use Introducing Discourse developer toolbar para encontrá-los. Se você não sabe o que é um plugin outlet, pode dar uma olhada em Using Plugin Outlet Connectors from a Theme or Plugin, mas este componente permite que você, com algumas restrições, insira texto em qualquer plugin outlet sem programar ou realmente entender o que é um plugin outlet.
Comecei a desenvolver este plugin para alguém que queria exibir um botão “clique neste botão para se inscrever para poder enviar PMs” nos perfis de usuário e cartões de usuário. Eles queriam que o botão fosse exibido se o usuário não pudesse enviar PMs. Como nem sempre sou tão inteligente quanto penso, escrevi o componente usando grupos para determinar se o botão era exibido. Um problema com essa abordagem era que os membros da equipe não estavam no grupo de assinantes, então eles recebiam o botão “você precisa se inscrever”, embora pudessem enviar PMs. Além disso, o grupo estava oculto, então era impossível usá-lo em um componente de tema de qualquer maneira. Eu reescrevi esse componente de tema para usar currentUser.can_send_private_messages para determinar se deveria exibir o botão.
Para quem é isso?
Se você deseja colocar um botão com um link nele, ou algum texto arbitrário que é exibido ou oculto para certos grupos, isso permitirá que você os insira em qualquer plugin outlet. Você quer adicionar um botão de link “Você precisa se inscrever” entre cada mensagem, exceto para aqueles que não são membros? Isso fará isso. Você quer inserir algum HTML arbitrário em um plugin outlet, apenas para ver como ficaria? Isso fará isso.
Como ajuda os desenvolvedores
Este tema tem alguns exemplos simples de como:
- usar o Objects type for theme setting
- usar
api.renderInOutlet(conforme descrito aqui para inserir um componente Glimmer em um outlet controlado por uma configuração, em vez de criar um arquivo no diretórioconnectors - Escrever um componente Glimmer simples que acessa
currentUser - Envolver um componente em outro modelo (inline) para poder passar dados para ele
- Exibir HTML arbitrário de uma configuração de tema livre das restrições do Markdown–Sim, talvez
mas se você está tentando fazer isso dentro de um <template> dentro de um arquivo .gjs, funciona um pouco diferente (como {{htmlSafe component.text}})



