您认为是否可以在主题首帖中添加一个“私信”按钮?
令我惊讶的是,许多用户不知道如何向主题发起人(OP)发送私信,因为私信按钮只有在点击 OP 的头像时才会显示。
例如:
目前,我正在使用“discourse-custom-topic-button”插件。
并使用以下 URL:
example.com/new-message?username=<TOPIC_USERNAME>&title=Re:<TOPIC_TITLE>
然而,当用户点击该按钮时,它会立即跳转到首页,而消息编辑器尚未显示。它的行为与用户卡片中的“消息”按钮不同。如果您点击用户卡片中的“消息”按钮,消息编辑器会立即弹出,而不会跳转到其他页面。
您认为是否可以让自定义按钮(new-message URL)的行为与用户卡片中的“消息”按钮一致?
我最近为一名客户开发了以下内容:
这是开源项目。它可能符合您的需求。只需添加您希望其出现的分类即可。如果遇到任何错误,请告诉我。
遗憾的是,我目前没有时间对其进行扩展。
感谢 @davidkingham 委托我们完成这项工作,并允许将其开源,从而间接支持了更广泛的社区。
10 个赞
非常感谢。

它完全符合我的需求。

只是出于好奇:
您认为我可以在"pm-topic-author.hbs"中添加 {{#if this.user.can_send_private_message_to_user}} 吗?这样如果用户与发帖人(OP)相同,按钮就不会显示。
类似于 Discourse 用户卡片中的实现:“user-card-contents.hbs”
3 个赞
好眼力!
既然我们已经有了 showPMTopicAuthorButton 属性,或许应该在 JS 中实现,不过你的方案作为一个临时的解决办法也非常棒。
3 个赞
非常感谢您的更新。

现在,登录用户的功能运行完美。

不过,更新后似乎插件对未登录用户引发了一些错误。当未登录用户访问页面时,会看到一个空白帖子。页面仅显示标题、分类和标签,但下方所有内容均为空白。
浏览器检查器:
错误日志:
1 个赞
您已经在撰写器中拥有它,请点击左上角的回复箭头,如下图所示,然后选择新建邮件。
sallypf
(Sally)
9
您好,我看到您现在在 GitHub 上维护这个插件?
我已经安装了插件,但它似乎不起作用。首先,“插件”页面上的开关是灰色的,请参见下图。不确定这是什么意思?
接下来,设置值旁边没有显示用户姓名的按钮。
这个插件还能用吗?我们能让它工作吗?
sallypf
(Sally)
10
您好,
我想在帖子中用户名字旁边添加一个“发送消息”按钮,如下图所示:
我阅读了许多与此功能相关的帖子,但似乎没有一个满足我的要求。
我阅读了 这篇 文章,但它指向一个在主题底部添加按钮的主题组件。
有什么方法可以实现这个功能吗?
pfaffman
(Jay Pfaffman)
11
看起来没有插件插槽可以将按钮放置在您想要的位置:
也许您可以满足于将其放在 topic-above-posts。
然后,您将创建一个 glimmer 组件 来添加按钮。最后,您将使用 api.renderInOutlet 来让该组件显示在那里。Custom Components -- add button or text at any plugin outlet 是一个示例。
然后您将修改此内容:
并找出启动该消息的 URL(Prefilled composer link generator 可能会有帮助——您只需要知道您想要什么链接)。
3 个赞
sallypf
(Sally)
12
感谢您的回复。这超出了我的能力范围。
有一个插件可以满足这个确切的需求,但似乎已经被删除了 Add a "Personal Message" button on Post 这就是我想要的。
嗨,Sally!我想知道你为什么会想这样做。难道你不希望你的会员回复主题,一起进行对话吗?添加这样的链接也会使界面变得混乱,分散会员的注意力。
当您点击头像/用户名时,会弹出一个用户卡,其中包含直接向该会员发送消息的按钮,这难道还不够吗?
3 个赞
sallypf
(Sally)
14
我正在尝试构建一个消息系统,用户可以在论坛发帖,但主要功能是互相发送消息。所以我想让“消息”按钮可见。任何新用户都需要一些时间才能弄清楚如何发送消息。
1 个赞
Discourse 的这种用法很有趣!您可以通过更多地教育您的成员如何访问用户卡片,通过个人消息(或聊天?您是否也在使用聊天?)回复来解决此问题。例如,您可以在顶部创建一个持久横幅。并在您的欢迎消息中解释如何访问它。
如果您绝对需要此按钮并且您有预算,您可以发布到 Marketplace,也许这里有人可以为您构建它。
sallypf
(Sally)
16
我已经这样做了,在顶部显示,在欢迎消息、关于我们页面等发送说明。
不使用聊天,消息对我来说就足够了。
是的,那将是最后的手段。
我希望有人能复活这个插件,因为它过去确实有效,不是吗?
我是原始作者。即使它仍然有效,该插件也只是将按钮添加到第一个帖子,而不是每个帖子。
3 个赞
sallypf
(Sally)
18
罗伯特您好,是的,这正是我想要的,在 OP 的第一个帖子旁边添加“消息”按钮。
问题是该插件不起作用,它不显示“消息”按钮。我已经安装了它。我可以看到该插件在插件页面上是灰色的,不确定那是什么意思?
您能否复活这个插件?拜托?如果您有空闲时间。
pfaffman
(Jay Pfaffman)
19
实际上,我的自定义组件主题组件会起作用。
只需在 url 上放置一个用于启动 pm(我认为这可行?)以及我在设置中提到的插件出口。
编辑:
哦。糟糕。
不。你需要这个
https://your.discourse.site/new-message?username=username
并且没有机制来包含主题用户名。