如何通过主题 JS(Blackout 主题)强制在特定类别的主题创建中添加必需的标签?

大家好,

我想在我的 Discourse 论坛中强制执行一项规则,即对于特定类别,用户在创建主题时必须附加特定标签。用户可以附加任意数量的标签,但必须有一个特定标签;否则,应显示错误消息并阻止创建主题。

我正在使用 Blackout 主题(或自定义主题),并且希望使用 JavaScript 在客户端添加此验证。

是否可以在主题的 JavaScript(例如,在 Blackout 主题的自定义代码中)中添加此类条件来:

  • 检查正在创建的主题是否属于特定类别,
  • 检查是否已附加必需的标签,
  • 如果缺少必需的标签,则显示错误并阻止创建主题?

如果可以,谁能分享一个示例或最佳方法?

提前感谢!

我相信您可以使用内置工具来完成此操作。

在类别设置中,查看:

因此,您只需创建一个标签组,添加您想要的标签,然后在您希望其成为必填项的类别中选择该组。

1 个赞

您好,
我已按照步骤操作。
我创建了一个标签组并向其中添加了单个标签

  1. 类别设置中,于标签 > 所需标签组下,我选择了此标签组。

  2. 我的预期是:在此类别中创建新主题时,必须至少包含来自所需标签组的一个标签

但是,系统允许在不包含所需标签组中任何标签的情况下创建主题,这违背了此设置的初衷。

我附上了截图,显示:

  • 标签组配置

  • 类别设置

  • 一个绕过了要求的、新创建的主题

您能否帮忙调查这是否是一个错误,或者我是否遗漏了什么?

1 个赞

我认为你是对的,你发现了一个 bug。我正在通知相关团队!

@S.AAKASH_MUTHIAH

好的,原来这个限制不适用于管理员……

所以至少它对普通用户来说运行正常,我已经测试过并确认了。

我们正在内部讨论如何进一步改进这一点,方法是将其全局应用或至少明确此行为。

1 个赞

我个人宁愿它不适用于全局,管理员的要点应该是你可以覆盖任何东西,而这会使你无法覆盖这个特定的东西。除非你添加一种绕过它的方法,而这似乎比保持原样要麻烦得多。

1 个赞

@S.AAKASH_MUTHIAH 您的问题解决了吗?我认为 @chapoi 的建议适用于您的情况。您只需要记住,作为管理员,您不受此问题的影响,因为您不受其他非管理员限制的影响。

此主题在上次回复后 7 天自动关闭。不再允许新回复。