等级系统(levels)建议征集。热
129320
昨天下午+晚上3个40余轮对话共消耗4000+积分
精细打造(未完工),刚又适配到9.1。我的想法是后期我制作的所有和权限相关插件都将基于此插件制作。(本插件扩展 API(私有钩子)),但个人的能力和想法有限,征集下大家的想法一起来完善。
- 积分等级体系:等级为积分的纯函数(从不落库),达标自动晋升、跌破自动回落;默认档位 LV0=0 / LV1=30 / LV2=100 / LV3=300 / LV4=1000,后台可任意增删改(名称唯一、门槛递增、首档自动归零、上限 20 档)。
- 用户状态域(单一状态链):骗子 > 禁访 > 禁言 > 停用 > 管理 > 特殊 > LV,一人同一时刻仅呈现一种状态;骗子/禁访互斥(入组承接对方 prev_flag,保证恢复链不中断)。
- 等级/状态徽章:帖子详情页与列表页作者旁显示徽章;三色(边框/底色/文字)后台可配,仅接受
#RRGGBB白名单色值。 - 版块等级门槛:按版块独立配置 查看/发帖/回帖 三项 LV 门槛;版块页与详情页直接拦截,混合列表(首页/搜索/个人主页)逐行隐藏;管理组与特殊组直通。
- 停用组只读:
user.can_speak返回自定义提示语,保留浏览权限但禁止发言。 - 内容遮罩:组级开关,开启后该组成员历史主贴/回帖正文替换为禁止图标(仅改渲染,移出组即恢复)。
- 个性签名:Markdown 渲染(复用内核
markdown_html,自带 XSS 防护)、仅登录可见、骗子隐藏、两行高截断;个人资料页编辑面板带实时字数统计与防抖 AJAX 预览;红区仅埋占位符,page.before_render整页一条 IN 查询批量回填;AJAX 新楼层路径就地单作者渲染。 - 升级/降级站内通知:
user.points_changedO(1) 门槛比对,措辞中性,各自独立开关。 - 前台快捷操作:主题页管理员行内 禁言(含时长档位)/解禁/禁访/解禁访/骗子/移出骗子,统一理由弹窗(每页一次),
levels_op路由白名单分发并全量复审权限。 - 禁言到期自动解除:
app.boot惰性清理,60 秒原子节流(条件 UPDATE 抢占 + rowCount 认领),永久禁言expires_at=0不误判。 - 成员管理:后台五区(等级与徽章/成员管理/版块限制/操作记录/设置),用户名联想搜索、按组筛选、分页;标志位(is_banned/is_muted)写入与原值恢复全在事务内。
- 审计日志:每次状态变更一行(含到期自动解禁,operator=0),理由必填;后台按动作筛选、CSV 导出(id 游标分块 + UTF-8 BOM + 公式注入防护)、保留期自动清理(1/50 概率防写放大)、一键清空。
- 公开管理日志:可开关的前台页,仅公开 禁言/禁访/骗子 类动作(停用/特殊不公开),自然语言事件句。
- 侧栏等级卡片与 /levels 等级页:当前徽章、积分、升级进度条、下一等级差距、等级一览表。
- 扩展 API(私有钩子):
levels.query(查询用户等级/状态)、levels.mute_set/mute_clear/ban_set/ban_clear(供其他插件编程调用成员管理)。 - 卸载语义:保留数据时一切原样(标志位与成员关系继续生效于内核);删除数据时先按 prev_flag 恢复全部标志位再清表。
🔒 图片需 登录 后查看
🔒 图片需 登录 后查看
🔒 图片需 登录 后查看主楼