当前位置: 首页 > 站长资讯 > 正文页面

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

没想到这个问题到了Discuz! X3了还没解决,不知道官方团队是没注意到这个问题,还是遇到了瓶颈,下面是我搜到的网上的教程,但大部分教程不是隐藏就是需要注册回复,转发到这儿,方便大家直接查阅。cn8网站目录_网站网址收录与提交入口

修改文件:source/include/spacecp/spacecp_usergroup.phpcn8网站目录_网站网址收录与提交入口

找到代码:cn8网站目录_网站网址收录与提交入口

$groupexpirynew = $groupterms['ext'][$groupid];cn8网站目录_网站网址收录与提交入口

替换为:cn8网站目录_网站网址收录与提交入口

$groupexpirynew = $groupterms['ext'][$extgroupidsnew];cn8网站目录_网站网址收录与提交入口

找到代码:cn8网站目录_网站网址收录与提交入口

$expirylist[$group['groupid']]['grouptitle'] = in_array($group['groupid'], $expgrouparray) ? '' : $group['grouptitle'];cn8网站目录_网站网址收录与提交入口

}cn8网站目录_网站网址收录与提交入口

}cn8网站目录_网站网址收录与提交入口

因为不同版本代码有变,所以如果搜不到全部,就只搜一下:cn8网站目录_网站网址收录与提交入口

$expirylist[$group['groupid']]['grouptitle']cn8网站目录_网站网址收录与提交入口

在这段代码下面(注意:一定是在两个大括号之后)添加:cn8网站目录_网站网址收录与提交入口

if($expgrouparray) {cn8网站目录_网站网址收录与提交入口

$extgroupidarray = array();cn8网站目录_网站网址收录与提交入口

foreach(explode("/t", $_G['forum_extgroupids']) as $extgroupid) {cn8网站目录_网站网址收录与提交入口

if(($extgroupid = intval($extgroupid)) && !in_array($extgroupid, $expgrouparray)) {cn8网站目录_网站网址收录与提交入口

$extgroupidarray[] = $extgroupid;cn8网站目录_网站网址收录与提交入口

}cn8网站目录_网站网址收录与提交入口

}cn8网站目录_网站网址收录与提交入口

$groupidnew = $_G['groupid'];cn8网站目录_网站网址收录与提交入口

$adminidnew = $_G['adminid'];cn8网站目录_网站网址收录与提交入口

foreach($expgrouparray as $expgroupid) {cn8网站目录_网站网址收录与提交入口

if($expgroupid == $_G['groupid']) {cn8网站目录_网站网址收录与提交入口

if(!empty($groupterms['main']['groupid'])) {cn8网站目录_网站网址收录与提交入口

$groupidnew = $groupterms['main']['groupid'];cn8网站目录_网站网址收录与提交入口

$adminidnew = $groupterms['main']['adminid'];cn8网站目录_网站网址收录与提交入口

} else {cn8网站目录_网站网址收录与提交入口

$groupidnew = DB::result_first("SELECT groupid FROM ".DB::table('common_usergroup')." WHERE type='member' AND '".$_G['member']['credits']."'>=creditshigher AND '$credits'<creditslower LIMIT 1");cn8网站目录_网站网址收录与提交入口

if(in_array($_G['adminid'], array(1, 2, 3))) {cn8网站目录_网站网址收录与提交入口

$query = DB::query("SELECT groupid FROM ".DB::table('common_usergroup')." WHERE groupid IN (".dimplode($extgroupidarray).") AND radminid='$_G[adminid]' LIMIT 1");cn8网站目录_网站网址收录与提交入口

$adminidnew = (DB::num_rows($query)) ? $_G['adminid'] : 0;cn8网站目录_网站网址收录与提交入口

} else {cn8网站目录_网站网址收录与提交入口

$adminidnew = 0;cn8网站目录_网站网址收录与提交入口

}cn8网站目录_网站网址收录与提交入口

}cn8网站目录_网站网址收录与提交入口

unset($groupterms['main']);cn8网站目录_网站网址收录与提交入口

}cn8网站目录_网站网址收录与提交入口

unset($groupterms['ext'][$expgroupid]);cn8网站目录_网站网址收录与提交入口

}cn8网站目录_网站网址收录与提交入口

require_once libfile('function/forum');cn8网站目录_网站网址收录与提交入口

$groupexpirynew = groupexpiry($groupterms);cn8网站目录_网站网址收录与提交入口

$extgroupidsnew = implode("/t", $extgroupidarray);cn8网站目录_网站网址收录与提交入口

cn8网站目录_网站网址收录与提交入口
$grouptermsnew = addslashes(serialize($groupterms));cn8网站目录_网站网址收录与提交入口

DB::query("UPDATE ".DB::table('common_member')." SET adminid='$adminidnew', groupid='$groupidnew', extgroupids='$extgroupidsnew', groupexpiry='$groupexpirynew' WHERE uid='$_G[uid]'");cn8网站目录_网站网址收录与提交入口

DB::query("UPDATE ".DB::table('common_member_field_forum')." SET groupterms='$grouptermsnew' WHERE uid='$_G[uid]'");cn8网站目录_网站网址收录与提交入口

}cn8网站目录_网站网址收录与提交入口

正常情况下,直接生效,但如果看不出来变化,就后台更新一下缓存,就OK了。cn8网站目录_网站网址收录与提交入口

  

此文由 网站目录_网站网址收录与提交入口 编辑,未经允许不得转载!:

相关文章