在帖子中添加“个人消息”按钮

Do you think it is possible to add a “Private Message” button to the topic first post? :thinking:

I am surprised that many users don’t know how to send PM to OP, because the PM button is not visible unless they click on the OP’s avatar.

For example,


Currently, I am using the " discourse-custom-topic-button" plugin.

And use the url of
example.com/new-message?username=<TOPIC_USERNAME>&title=Re:<TOPIC_TITLE>

However, when user click on the button, it jump to the front page immediately, before the Message editor show up. It doesn’t act the same as the “Message” button in user card. If you click on the “Message” button in user card, it show up the message editor immediate without jumping to other page.

Do you think it is possible to make the custom button (new-message url) act the same as the Message button in user card ? :thinking:

I recently built this for a client:

https://github.com/paviliondev/discourse-pm-topic-author

It is open-source. It may suit your needs. Just add the Categories you want it to appear in. Let me know if you hit any bugs.

Unfortunately I don’t have time to extend it at present.

Thanks to @davidkingham for commissioning us to do the work and allowing this to be open source, and in turn therefore supporting the wider community.

10 个赞

Thank you very much. :smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

It works exactly what I am looking for. :partying_face: :partying_face: :partying_face:


Just out of curiosity, :grinning:

Do you think I can add
{{#if this.user.can_send_private_message_to_user}}
to “pm-topic-author.hbs” , so that the button won’t show up if the user is the same as the OP ? :thinking:

Similar to Discourse User card “user-card-contents.hbs

pm-topic-author.hbs

3 个赞

Good catch!

Given we already have the showPMTopicAuthorButton property, we should probably do that in JS, though your solution is a great interim approach.

3 个赞

So I’ve done that with JS:

https://github.com/paviliondev/discourse-pm-topic-author/commit/a82ac238d9dce2291e827b66784aef1715e077c0

Thanks for your feedback.

Upgrade when you get chance and please confirm that works for you.

10 个赞

Thank you very much for the update. :smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

Now It works perfectly well for login user. :partying_face: :partying_face: :partying_face:

However, it seem after updated, the plugin cause some error for non-login user. When non-login user visit the page, it get a blank post. It only show the title, category, tag, but everything below is empty . :thinking:

Browser Inspector:
2021-04-11_053333

Error log:

1 个赞

https://github.com/paviliondev/discourse-pm-topic-author/commit/ed5a0128c754e1017a752a08bf3725acf3f5bfb5
Schoolboy error :man_facepalming:t3:- introduced that in last change. Hopefully that resolves it for you :slight_smile:

4 个赞

您已经在撰写器中拥有它,请点击左上角的回复箭头,如下图所示,然后选择新建邮件

您好,我看到您现在在 GitHub 上维护这个插件?

我已经安装了插件,但它似乎不起作用。首先,“插件”页面上的开关是灰色的,请参见下图。不确定这是什么意思?

接下来,设置值旁边没有显示用户姓名的按钮。

这个插件还能用吗?我们能让它工作吗?

您好,
我想在帖子中用户名字旁边添加一个“发送消息”按钮,如下图所示:

我阅读了许多与此功能相关的帖子,但似乎没有一个满足我的要求。

我阅读了 这篇 文章,但它指向一个在主题底部添加按钮的主题组件。

有什么方法可以实现这个功能吗?

看起来没有插件插槽可以将按钮放置在您想要的位置:

也许您可以满足于将其放在 topic-above-posts

然后,您将创建一个 glimmer 组件 来添加按钮。最后,您将使用 api.renderInOutlet 来让该组件显示在那里。Custom Components -- add button or text at any plugin outlet 是一个示例。

然后您将修改此内容:

并找出启动该消息的 URL(Prefilled composer link generator 可能会有帮助——您只需要知道您想要什么链接)。

3 个赞

感谢您的回复。这超出了我的能力范围。
有一个插件可以满足这个确切的需求,但似乎已经被删除了 Add a "Personal Message" button on Post 这就是我想要的。

嗨,Sally!我想知道你为什么会想这样做。难道你不希望你的会员回复主题,一起进行对话吗?添加这样的链接也会使界面变得混乱,分散会员的注意力。

当您点击头像/用户名时,会弹出一个用户卡,其中包含直接向该会员发送消息的按钮,这难道还不够吗?

3 个赞

我正在尝试构建一个消息系统,用户可以在论坛发帖,但主要功能是互相发送消息。所以我想让“消息”按钮可见。任何新用户都需要一些时间才能弄清楚如何发送消息。

1 个赞

Discourse 的这种用法很有趣!您可以通过更多地教育您的成员如何访问用户卡片,通过个人消息(或聊天?您是否也在使用聊天?)回复来解决此问题。例如,您可以在顶部创建一个持久横幅。并在您的欢迎消息中解释如何访问它。

如果您绝对需要此按钮并且您有预算,您可以发布到 Marketplace,也许这里有人可以为您构建它。

我已经这样做了,在顶部显示,在欢迎消息、关于我们页面等发送说明。

不使用聊天,消息对我来说就足够了。

是的,那将是最后的手段。

我希望有人能复活这个插件,因为它过去确实有效,不是吗?

我是原始作者。即使它仍然有效,该插件也只是将按钮添加到第一个帖子,而不是每个帖子。

3 个赞

罗伯特您好,是的,这正是我想要的,在 OP 的第一个帖子旁边添加“消息”按钮。

问题是该插件不起作用,它不显示“消息”按钮。我已经安装了它。我可以看到该插件在插件页面上是灰色的,不确定那是什么意思?

您能否复活这个插件?拜托?如果您有空闲时间。

实际上,我的自定义组件主题组件会起作用。

只需在 url 上放置一个用于启动 pm(我认为这可行?)以及我在设置中提到的插件出口。

编辑:

哦。糟糕。

不。你需要这个

 https://your.discourse.site/new-message?username=username

并且没有机制来包含主题用户名。

如果您有预算并希望赞助这项工作,请给我发私信。

2 个赞