Como Adicionar Conteúdo HTML Único Abaixo do Corpo do Tópico em fórum discourse para Tópicos Específicos

this.model contém os dados do Tópico, como id, title, etc. Você pode usá-los.

Por exemplo, para permitir o ID de tópico 90 ou 38, você escreveria:

<script type="text/x-handlebars" data-template-name="connectors/topic-area-bottom/custom-html">
  {{#if (or (eq this.model.id 90) (eq this.model.id 38))}}
    <div class="banner-control">
      <!-- Conteúdo HTML exclusivo vai aqui -->
    </div>
  {{/if}}
</script>

No entanto, eu encorajo você a usar a Theme CLI e trabalhar com arquivos divididos.

Será difícil adicionar mais condições ou ter alguma lógica lá. Seria possível usar registerConnectorClass, mas está obsoleto.

A maneira moderna é usar renderInOutlet com um componente glimmer — por exemplo, GitHub - discourse/discourse-custom-header-links.
Você diz que quer renderizar em um outlet específico:

Você tem o template definido aqui. Note o this.shouldShow
https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.hbs#L1

Então você pode adicionar sua lógica aqui para dizer ao componente para ser exibido ou não:
https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.js#L5-L7

Espero que isso ajude. Me avise se precisar de mais assistência. :+1:

5 curtidas