帖子投票已启用点赞,但点赞未显示

我们启用了 qa enable likes on answers 设置,但看不到 :heart:
我们还安装了官方插件 Discourse Reactions。这会是此 bug 的原因吗?

5 个赞

我在我的测试站点上切换了“反应”的开关以进行检查,看起来它是连接上的。我想知道这是否是此 bug 修复 Thumbs up, twice 的结果?

3 个赞

您好,

默认情况下,帖子投票主题中的反应(隐藏)是通过 CSS 禁用的。

您可以通过在“通用/CSS”组件中添加一些 CSS 来重新激活它::down_arrow:

.post-voting-topic,
.post-voting-topic-sort-by-activity {
  .discourse-reactions-actions {
    display: inline-flex;
  }
}
6 个赞

非常感谢!

默认的限制是可以理解的(选项太多,难以提供反馈),但如果有一个设置允许管理员启用“点赞”功能,并且这些管理员已经在他们的网站上启用了反应功能,那么当他们在投票帖子中启用该设置时,启用反应功能将是合乎逻辑的。

无论如何,我猜想更多的管理员可能会认为这是一个 bug,而不是去检查代码并修复 CSS。 :slight_smile:

3 个赞
已安装 Reactions 已安装 Post Voting 启用对答案的点赞 调用 removePostMenuButton(‘like’)?
否 (NA) 否,保留 :heart:
NA 是,移除点赞按钮,显示 Reactions
是,移除答案的点赞按钮
否,为每个帖子保留 :heart:
是,移除点赞按钮,仅为第一个帖子显示 Reactions,不显示答案
是,移除点赞按钮,为所有帖子显示 Reactions

在这里草拟了一个类似真值表的东西。我们需要根据网站设置,特别是 enable likes on answers 的设置,以编程方式让 Reactions 显示在不同的帖子中,而不是直接使用 CSS 的 display:none

@tgxworld 当时建议我们应该在 discourse-reactions 上公开一个 API (t/67550/10)。也许我们应该考虑一下。

7 个赞
// 移除 `like` 按钮
api.removePostMenuButton("like");
// 并重新添加它
api.decorateWidget("post-menu:before-extra-controls", (dec) => {
  return dec.attach("discourse-reactions-actions", {

与其这样做 :arrow_up_small: ,不如在核心插件 API 中添加一个 replacePostMenuButton 方法,并在 reactions 插件中使用它。这样,post voting 插件就不需要单独处理 reaction 按钮的逻辑了。

既然有变通方法,我将在下一次发布后进行此项更改。

7 个赞

这需要 3 个 PR,但你的实现想法很棒 @vinothkannans,效果非常好。一旦这些都合并了,我会再次发帖 :slight_smile:

9 个赞

PR 已合并,现在(当您的 Discourse 实例更新后),反应将遵循 qa_enable_likes_on_answers 设置。感谢 @icaria36 的错误报告!

4 个赞

合并的 PR 破坏了 discourse 的稳定版本。由于 JavaScript 错误,网站无法加载。

Uncaught (in promise) TypeError: e.replacePostMenuButton is not a function
    u discourse-reactions.js:12
    withPluginApi plugin-api.js:2247
    initialize discourse-reactions.js:165
    initialize app.js:173
    runInstanceInitializers Ember
    each dag-map.js:192
    walk dag-map.js:121
    each dag-map.js:66
    topsort dag-map.js:72
    Ember 4
    invoke queue.ts:201
    flush queue.ts:98
    flush deferred-action-queues.ts:75
    _end index.ts:616
    _boundAutorunEnd index.ts:257
discourse-reactions.js:12
2 个赞

是的,我早该预料到这一点。我将向 reactions 插件推送一个修复程序,在 replacePostMenuButton 不存在时进行回退。

编辑:我已合并一项更改,该更改增加了向后兼容性。

3 个赞

此主题在 4 天后自动关闭。不再允许回复。