Come aggiungere contenuto HTML unico sotto il corpo dell'argomento in Discourse forum per argomenti specifici

this.model contiene i dati dell’argomento come id, titolo, ecc. Puoi usarli.

Ad esempio, per consentire gli ID argomento 90 o 38, scriveresti:

<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">
      <!-- Il contenuto HTML univoco va qui -->
    </div>
  {{/if}}
</script>

Tuttavia, ti incoraggio a utilizzare la Theme CLI e a lavorare con file separati.

Sarà difficile aggiungere altre condizioni o avere una logica lì. Sarebbe possibile utilizzare registerConnectorClass, ma è deprecato.

Il modo moderno è utilizzare renderInOutlet con un componente glimmer, ad esempio GitHub - discourse/discourse-custom-header-links.
Dici di voler eseguire il rendering in un outlet specifico:

Hai il template definito qui. Nota this.shouldShow
https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.hbs#L1

Quindi puoi aggiungere la tua logica qui per dire al componente di essere visualizzato o meno:
https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.js#L5-L7

Spero che questo aiuti. Fammi sapere se hai bisogno di ulteriore assistenza. :+1:

5 Mi Piace