|
|
对于用户组过期后的 清理,discuzX默认的机制是 用户登录的 自动检测更新用户组信息。
有些用户 可能想主动 清理掉 过期的用户组, 也就是 用户组到期后 主动更新 其 用户组信息, 而不是 等 用户登录后 再被动的触发 用户组信息的更新。
现在 飘仙来分析一下解决方案:
首先,必须 开启dz自动的计划任务: cron_cleanup_daily.php 每日数据清理。————这个默认是自动清理 过期的 禁言用户组 和 禁止访问用户组 的。
然后 ,我们用 正经的编辑器 打开 cron_cleanup_daily.php 这个文件,
找到
$members = C::t('common_member')->fetch_all_ban_by_groupexpiry(TIMESTAMP);
这一行代码, 将其 替换成:
$members = DB::fetch_all("SELECT uid, groupid, credits FROM ".DB::table($this->_table)." WHERE groupid IN ('4', '5') AND groupexpiry>'0' AND groupexpiry<'$timestamp'", array(), 'uid');
其中
('4', '5') 里面添加上 需要 自动清理的用户组id, 比如 ('4', '5', '20')
其中 4 和 5分别是系统用户组中 禁止发言和禁止访问 用户组的id。
|
|