Cómo agregar contenido HTML único debajo del cuerpo del tema en el foro discourse para temas específicos

this.model contiene los datos del tema, como el id, title, etc. Puedes usar eso.

Por ejemplo, para permitir los IDs de tema 90 o 38, escribirías:

<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">
      <!-- El contenido HTML único va aquí -->
    </div>
  {{/if}}
</script>

Sin embargo, te animo a usar la Theme CLI y trabajar con archivos divididos.

Será difícil añadir más condiciones o tener algo de lógica allí. Sería posible usar registerConnectorClass, pero está obsoleto.

La forma moderna es usar renderInOutlet con un componente glimmer, por ejemplo, GitHub - discourse/discourse-custom-header-links.
Dices que quieres renderizar en un outlet específico:

Tienes la plantilla definida aquí. Observa this.shouldShow
https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.hbs#L1

Luego puedes añadir tu lógica aquí para indicar si el componente se muestra o no:
https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.js#L5-L7

Espero que esto ayude. Hazme saber si necesitas ayuda adicional. :+1:

5 Me gusta