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

您认为是否可以在主题首帖中添加一个“私信”按钮?:thinking:

令我惊讶的是,许多用户不知道如何向主题发起人(OP)发送私信,因为私信按钮只有在点击 OP 的头像时才会显示。

例如:


目前,我正在使用“discourse-custom-topic-button”插件。

并使用以下 URL:
example.com/new-message?username=<TOPIC_USERNAME>&title=Re:<TOPIC_TITLE>

然而,当用户点击该按钮时,它会立即跳转到首页,而消息编辑器尚未显示。它的行为与用户卡片中的“消息”按钮不同。如果您点击用户卡片中的“消息”按钮,消息编辑器会立即弹出,而不会跳转到其他页面。

您认为是否可以让自定义按钮(new-message URL)的行为与用户卡片中的“消息”按钮一致?:thinking:

我最近为一名客户开发了以下内容:

这是开源项目。它可能符合您的需求。只需添加您希望其出现的分类即可。如果遇到任何错误,请告诉我。

遗憾的是,我目前没有时间对其进行扩展。

感谢 @davidkingham 委托我们完成这项工作,并允许将其开源,从而间接支持了更广泛的社区。

10 个赞

非常感谢。:smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

它完全符合我的需求。:partying_face: :partying_face: :partying_face:


只是出于好奇::grinning:

您认为我可以在"pm-topic-author.hbs"中添加 {{#if this.user.can_send_private_message_to_user}} 吗?这样如果用户与发帖人(OP)相同,按钮就不会显示。:thinking:

类似于 Discourse 用户卡片中的实现:“user-card-contents.hbs

3 个赞

好眼力!

既然我们已经有了 showPMTopicAuthorButton 属性,或许应该在 JS 中实现,不过你的方案作为一个临时的解决办法也非常棒。

3 个赞

所以我用 JavaScript 实现了这一点:

感谢您的反馈。

有空时请升级,并确认是否对您有效。

10 个赞

非常感谢您的更新。:smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

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

不过,更新后似乎插件对未登录用户引发了一些错误。当未登录用户访问页面时,会看到一个空白帖子。页面仅显示标题、分类和标签,但下方所有内容均为空白。:thinking:

浏览器检查器:

错误日志:

1 个赞

https://github.com/paviliondev/discourse-pm-topic-author/commit/ed5a0128c754e1017a752a08bf3725acf3f5bfb5
真是低级错误:man_facepalming:t3:——在上次更改中不小心引入了这个问题。希望这能为您解决问题 :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 个赞