本帖最后由 zhongq58 于 2013-8-13 00:54 编辑
Discuz! X2-X3用户组到期后不自动切换解决方案。
未解决前,VIP会员到期无论怎么点击都是无法进去其它版块或者其它页面
方法一
懒人解决 可以直接下载附件替换文件:
source/include/spacecp/spacecp_usergroup.php
方法二
修改文件:source/include/spacecp/spacecp_usergroup.php
找到代码
- $groupexpirynew = $groupterms['ext'][$groupid];
复制代码
替换为
- $groupexpirynew = $groupterms['ext'][$extgroupidsnew];
复制代码 然后找到代码
- $expirylist[$group['groupid']]['grouptitle'] = in_array($group['groupid'], $expgrouparray) ? '<s>'.$group['grouptitle'].'</s>' : $group['grouptitle'];
- }
- }
复制代码 在它的下面加上如下代码:
- if($expgrouparray) {
- $extgroupidarray = array();
- foreach(explode("\t", $_G['forum_extgroupids']) as $extgroupid) {
- if(($extgroupid = intval($extgroupid)) && !in_array($extgroupid, $expgrouparray)) {
- $extgroupidarray[] = $extgroupid;
- }
- }
- $groupidnew = $_G['groupid'];
- $adminidnew = $_G['adminid'];
- foreach($expgrouparray as $expgroupid) {
- if($expgroupid == $_G['groupid']) {
- if(!empty($groupterms['main']['groupid'])) {
- $groupidnew = $groupterms['main']['groupid'];
- $adminidnew = $groupterms['main']['adminid'];
- } else {
- $groupidnew = DB::result_first("SELECT groupid FROM ".DB::table('common_usergroup')." WHERE type='member' AND '".$_G['member']['credits']."'>=creditshigher AND '$credits'<creditslower LIMIT 1");
- if(in_array($_G['adminid'], array(1, 2, 3))) {
- $query = DB::query("SELECT groupid FROM ".DB::table('common_usergroup')." WHERE groupid IN (".dimplode($extgroupidarray).") AND radminid='$_G[adminid]' LIMIT 1");
- $adminidnew = (DB::num_rows($query)) ? $_G['adminid'] : 0;
- } else {
- $adminidnew = 0;
- }
- }
- unset($groupterms['main']);
- }
- unset($groupterms['ext'][$expgroupid]);
- }
- require_once libfile('function/forum');
- $groupexpirynew = groupexpiry($groupterms);
- $extgroupidsnew = implode("\t", $extgroupidarray);
- $grouptermsnew = addslashes(serialize($groupterms));
- DB::query("UPDATE ".DB::table('common_member')." SET adminid='$adminidnew', groupid='$groupidnew', extgroupids='$extgroupidsnew', groupexpiry='$groupexpirynew' WHERE uid='$_G[uid]'");
- DB::query("UPDATE ".DB::table('common_member_field_forum')." SET groupterms='$grouptermsnew' WHERE uid='$_G[uid]'");
- }
复制代码
解决后,看效果。
代码修改完之后,别忘记了在后台工具里面更新一下缓存。再次登录以到期的VIP会员看看效果吧,
如果看了教程解决不了的,跟贴回复。我们会第一时间为你解答。
本文原文http://www.ymzj.cn/thread-67616-1-1.html 转载请注明!
|