Howto show the topic id in Metadata of initial Post

I tried to display the Topic ID in the initial Post of all topics of a specific category but failed. I could not find a way by configuring Discourse and also a plugin - similar to Discourse BBCODE - failed to work.

Could you please give me a clear hint on how to realize to display the Topic ID in the initial Post metadata of each topic of a specific category?

I need this to continue the customer expectations of the old system as well some related functions and behavior.

Thanks a lot!

إعجاب واحد (1)

The topic_id is at the end of the URL.

Can you say more about what expectations you are tryingto may and what features you need?

إعجاب واحد (1)

As I mentioned in my Post I try to write a plugin, probably the dev category is not the proper place due I don’t want this in Discourse itself. Can you point me to some kind of solution how to display additional (existing) meta data in the initial Post Header?

I know that the URL contains the TopicID as last “Tuple” and there is also a canonical link in the html header that does. I need to display the TopicID on the initial Post. We often speak about “Topic#34074” or something and want to stay with that habit, which our customers and partners are used to.
So I tried to extract the ID (successfully) and past it into the ‘div.topic-meta-data’, which failed.

إعجاب واحد (1)

Add this to Settings > Customize > Common > </head>:

<script type="text/discourse-plugin" version="0.5">
  api.decorateWidget('post-meta-data:after', dec => {
    if (dec.attrs.post_number === 1) {
      const topic = dec.getModel().get('topic');
      return dec.rawHtml(`<div class="post-info topic-id">Topic: ${topic.get('id')}</div>`);
    }
  });
</script>

And you get:

And you just need to add some CSS.

10 إعجابات

of course, stylesheets are needed! :sunglasses:

exactly what I’m looking for - thanks a lot!!! :hugs:

إعجاب واحد (1)

Hello, Topic ID will show after post-meta-data
I want show after title topic, how do it ?
Thank you so much!

You can just do component-name:after widget-name:after. Or use a plugin outlet if its available on the position you desire.

4 إعجابات

Not effect :frowning:

<script type="text/discourse-plugin" version="0.5">
  api.decorateWidget('component-name:after', dec => {
    if (dec.attrs.post_number === 1) {
      const topic = dec.getModel().get('topic');
      return dec.rawHtml(`<div class="post-info topic-id">Topic: ${topic.get('id')}</div>`);
    }
  });
</script>

Did you actually literally put in component-name widget-name instead of the component’s actual name?

3 إعجابات

I wanna display topic ID below User name, what widget-name can i replace code :slight_smile:
Thank you!

Hello, who can i help me :frowning:

Did you try what Falco suggested in the above post?

إعجابَين (2)

Hello, how can we display count views topic in Post?

Hello, who can help me display button Message move out topic

js.user.private_message

example: