当用户符合条件获得多个自动化的“头衔”分配(通过徽章组)时,如何确定最终的头衔?
是否可以建立一个层级关系,也许是通过 SQL 查询的顺序或是在自动化用户界面中?
这对于我们的整体用户等级和信任等级至关重要,这些等级是通过逐步完成特定徽章(我们社区中的挑战)来设定的。
任何建议或帮助都将不胜感激。
当用户符合条件获得多个自动化的“头衔”分配(通过徽章组)时,如何确定最终的头衔?
是否可以建立一个层级关系,也许是通过 SQL 查询的顺序或是在自动化用户界面中?
这对于我们的整体用户等级和信任等级至关重要,这些等级是通过逐步完成特定徽章(我们社区中的挑战)来设定的。
任何建议或帮助都将不胜感激。
具有已分配头衔的最高优先级徽章组决定了最终头衔。
是的,可以建立头衔层次结构:
1. SQL 徽章查询
您可以通过以下方式控制优先级:
在自动化脚本或计划中按逻辑顺序排列查询。
使用 SQL 在授予更高优先级头衔时撤销较低优先级头衔。
添加 IF NOT EXISTS (SELECT FROM …) 等逻辑以确保独占性。
2. 自动化 UI (Discourse 管理员 > 徽章)
虽然 UI 不支持直接拖放重新排序,但您可以:
仅为最负盛名的徽章分配头衔。
使用自定义自动化(通过插件或外部脚本)来强制执行层次结构。
3. 组优先级
如果多个徽章组分配头衔,Discourse 会根据以下因素进行优先级排序:
用户是否手动选择头衔(这将覆盖)。
否则,按内部顺序首次匹配,这会受到徽章创建或 SQL 逻辑的影响。