沒想到這個問題到了Discuz! X3了還沒解決,不知道官方團隊是沒注意到這個問題,還是遇到了瓶頸,下面是我搜到的網上的教程,但大部分教程不是隱藏就是需要注冊回復,轉發到這兒,方便大家直接查閱。
修改文件:source/include/spacecp/spacecp_usergroup.php
找到代碼:
$groupexpirynew = $groupterms['ext'][$groupid];
替換為:
$groupexpirynew = $groupterms['ext'][$extgroupidsnew];
找到代碼:
$expirylist[$group['groupid']]['grouptitle'] = in_array($group['groupid'], $expgrouparray) ? '' : $group['grouptitle'];
}
}
因為不同版本代碼有變,所以如果搜不到全部,就只搜一下:
$expirylist[$group['groupid']]['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]'");
}
正常情況下,直接生效,但如果看不出來變化,就后臺更新一下緩存,就OK了。
此文由 網站目錄_網站網址收錄與提交入口 編輯,未經允許不得轉載?。?!--首頁 > 站長文章 > dz論壇 » 解決Discuz!X2和Discuz!X3用戶組到期后不自動更改用戶組的問題-->