我们的系统会生成用于发布公告的帐户。我们想知道是否有一种方法可以添加一个带有自己图标的单独的员工通知,该通知会自动附加到这些帖子中,以便我们解释这是一个自动生成的帐户?即使通过用户ID/名称或组也可以。
1 个赞
我认为您可以使用主题组件来实现此目的。例如,此代码可以满足您的需求:
<script type="text/discourse-plugin" version="0.8">
const { iconHTML } = require("discourse-common/lib/icon-library");
const bot_id = 128856; // or some else
api.decorateWidget("post:before", (helper) => {
if (helper?.getModel()?.user_id !== bot_id) {return;}
return helper.h("div.post-notice",[
helper.rawHtml(iconHTML("shield-alt")), // icon name
helper.h("p", "this is a bot"), // text
]);
});
</script>
3 个赞
你好!
我尝试使用 JS 在自动生成的帐户是“autogenerated”组的成员时自动附加一个员工通知,但我不知道我哪里出错了。
window.onload = function() {
const { groupMembers } = await discourse.groups.getMembers({
group_name: 'autogenerated'
});
if (groupMembers.includes(helper.getModel().user_id)) {
return helper.h('div.post-notices', [
helper.rawHtml(iconHTML('shield-alt')),
helper.h('p', '此帐户是自动生成的,应被视为机器人。员工不会监控此帐户。')
]);
}
}
我已将代码放在组件的“Head”部分,但它没有运行。我不确定它是否没有正确调用函数,或者我的 IF 语句是否未被满足。
您好 @jhealey
我已将您的帖子插入现有主题,因为它们的问题非常相似。 ![]()
你可能想锁定那个帖子。我可能应该回复这个主题…… ![]()
1 个赞
我太依赖自动工具了,没有检查。
我已经删除了其他话题。 ![]()
谢谢! ![]()
如果你使用了 await,那么你的函数必须是 async。
1 个赞
我真不知道我怎么没注意到!谢谢!现在可以用了 ![]()
没关系!我们都会偶尔犯这种疏忽。
不客气!![]()
所有这些技巧都很好,但它们应该以某种方式成为内置功能。