百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>Discuz教程> 解决Discuz!X2和Discuz!X3用户组到期后不自动更改用户组的问题
分享文章到:

解决Discuz!X2和Discuz!X3用户组到期后不自动更改用户组的问题

发布时间:12/03 来源: 浏览: 关键词:
没想到这个问题到了Discuz! X3了还没解决,不知道官方团队是没注意到这个问题,还是遇到了瓶颈,下面是我搜到的网上的教程,但大部分教程不是隐藏就是需要注册回复,转发到这儿,方便大家直接查阅。
修改文件:source/include/spacecp/spacecp_usergroup.php
找到代码:
  1. $groupexpirynew = $groupterms['ext'][$groupid];
复制代码
替换为:
  1. $groupexpirynew = $groupterms['ext'][$extgroupidsnew];
复制代码
找到代码:
  1. $expirylist[$group['groupid']]['grouptitle'] = in_array($group['groupid'], $expgrouparray) ? '' : $group['grouptitle'];
  2.                 }
  3.         }
复制代码
因为不同版本代码有变,所以如果搜不到全部,就只搜一下:
  1. $expirylist[$group['groupid']]['grouptitle']
复制代码
在这段代码下面(注意:一定是在两个大括号之后)添加:
  1. if($expgrouparray) {
  2. $extgroupidarray = array();
  3. foreach(explode("\t", $_G['forum_extgroupids']) as $extgroupid) {
  4. if(($extgroupid = intval($extgroupid)) && !in_array($extgroupid, $expgrouparray)) {
  5. $extgroupidarray[] = $extgroupid;
  6. }
  7. }
  8. $groupidnew = $_G['groupid'];
  9. $adminidnew = $_G['adminid'];
  10. foreach($expgrouparray as $expgroupid) {
  11. if($expgroupid == $_G['groupid']) {
  12. if(!empty($groupterms['main']['groupid'])) {
  13. $groupidnew = $groupterms['main']['groupid'];
  14. $adminidnew = $groupterms['main']['adminid'];
  15. } else {
  16. $groupidnew = DB::result_first("SELECT groupid FROM ".DB::table('common_usergroup')." WHERE type='member' AND '".$_G['member']['credits']."'>=creditshigher AND '$credits'<creditslower LIMIT 1");
  17. if(in_array($_G['adminid'], array(1, 2, 3))) {
  18. $query = DB::query("SELECT groupid FROM ".DB::table('common_usergroup')." WHERE groupid IN (".dimplode($extgroupidarray).") AND radminid='$_G[adminid]' LIMIT 1");
  19. $adminidnew = (DB::num_rows($query)) ? $_G['adminid'] : 0;
  20. } else {
  21. $adminidnew = 0;
  22. }
  23. }
  24. unset($groupterms['main']);
  25. }
  26. unset($groupterms['ext'][$expgroupid]);
  27. }
  28. require_once libfile('function/forum');
  29. $groupexpirynew = groupexpiry($groupterms);
  30. $extgroupidsnew = implode("\t", $extgroupidarray);
  31. $grouptermsnew = addslashes(serialize($groupterms));
  32. DB::query("UPDATE ".DB::table('common_member')." SET adminid='$adminidnew', groupid='$groupidnew', extgroupids='$extgroupidsnew', groupexpiry='$groupexpirynew' WHERE uid='$_G[uid]'");
  33. DB::query("UPDATE ".DB::table('common_member_field_forum')." SET groupterms='$grouptermsnew' WHERE uid='$_G[uid]'");
  34. }
复制代码
正常情况下,直接生效,但如果看不出来变化,就后台更新一下缓存,就OK了。
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

相关文章

共有21人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板