Atualmente, uso o seguinte widget para exibir um banner/link após o primeiro post de um tópico. Isso funciona bem até agora:
<script type="text/discourse-plugin" version="0.8">
const { iconNode } = require("discourse-common/lib/icon-library");
api.decorateWidget("post:after", helper => {
const firstPost = helper.attrs.firstPost;
const h = helper.h;
if (firstPost) {
return h("div#support", [
h(
'a.icon', {
href:'link',
title: 'Support-Icon'
}, iconNode('heart')),
h(
'a.link', {
href: "link",
title: 'Support-Link'
}, 'some text',
),
]);
}
});
</script>
No entanto, gostaria de integrar o banner/link em um local diferente - especificamente antes do botão de resposta. Marquei a posição em vermelho abaixo:
Alguém pode me dar uma dica de como realizar isso?
Sei que a posição/função é definida por isso. A questão é como encontrar este NOME:LOCALIZAÇÃO:
api.decorateWidget("NOME:LOCALIZAÇÃO", helper => {
Moin
Janeiro 12, 2024, 8:17am
2
OrkoGrayskull:
após a primeira postagem
OrkoGrayskull:
A posição que você marcou na imagem é após todas as postagens do tópico. Portanto, quando houver respostas, seu banner ficará abaixo delas e não diretamente abaixo da primeira postagem.
piffy
Janeiro 12, 2024, 8:17am
3
Há uma saída de plugin lá chamada topic-above-footer-buttons
Isso ajuda você a vê-los:
(deprecated) Plugin outlet locations theme component
Em seguida, siga este guia:
O Discourse inclui centenas de Plugin Outlets que podem ser usados para injetar novo conteúdo ou substituir conteúdo existente na interface do Discourse. Os ‘argumentos de outlet’ ficam disponíveis para que o conteúdo possa ser personalizado com base no contexto.
Escolhendo um outlet
Para encontrar o nome de um plugin outlet, pesquise no núcleo do Discourse por “<PluginOutlet”, ou use o componente de tema localizações de plugin outlet . (ex.: topic-above-posts).
Outlets de envoltório (wrapper)
A…
Obrigado. Funcionou.
Exemplo de código para o Head:
<script type='text/x-handlebars' data-template-name='/connectors/topic-footer-main-buttons-before-create/team-support'>
<div id="support">
<a href="link" title="Support-Icon" class="icon">
<svg class="fa d-icon d-icon-heart svg-icon svg-node" aria-hidden="true"><use xlink:href="#heart"></use></svg>
</a>
<a href="link" title="Support-Link" class="link">texto</a>
</div>
</script>
Infelizmente, o botão/banner só é exibido quando o usuário está logado. Como posso garantir que o botão/banner também seja exibido para usuários não registrados?
Estou usando esta posição de tema: topic-footer-main-buttons-before-create