ID do tópico como uma variável?

Será mais fácil criar um componente personalizado que anexe isso às postagens corretas em vez de preencher um modelo.

Se você editar o código do seu tema em admin > temas e componentes… e adicionar isso à aba JS, isso deve lhe dar o que você procura com alguns ajustes:

import { apiInitializer } from "discourse/lib/api";
import Component from "@glimmer/component";

class TopicIdentifier extends Component {
  get topicId() {
    return this.args.post?.topic?.id;
  }

  get shouldShow() {
    const firstPost = this.args.post?.post_number === 1; // primeira postagem no tópico
    const desiredCategories = [45, 3]; // uma lista separada por vírgulas de IDs de categoria onde você deseja que isso apareça
    const isInCategory = desiredCategories.includes(
      this.args.post?.topic.category.id
    );

    return firstPost && isInCategory;
  }

  <template>
    {{#if this.shouldShow}}
      <!-- você pode editar o conteúdo abaixo, {{this.topicId}} é onde o ID do tópico será preenchido -->
      Este tópico tem o ID
      {{this.topicId}}
      <!-- você pode editar o conteúdo acima -->
    {{/if}}
  </template>
}

export default apiInitializer((api) => {
  api.decorateCookedElement((element, helper) => {
    const wrapper = document.createElement("div");
    wrapper.className = "custom-topic-id"

    helper?.renderGlimmer(
      wrapper,
      <template><TopicIdentifier @post={{helper.model}} /></template>
    );

    element.appendChild(wrapper);
  });
});

Você pode encontrar o ID da categoria a partir de sua URL para configurar desiredCategories, por exemplo, a categoria suporte aqui no Meta tem o ID 6

Você pode adicionar CSS para estilizar isso como desejar com a aba CSS… por exemplo

.custom-topic-id {
  display: inline-block;
  background: yellow;
}

3 curtidas