建站学习网,专业提供各类建站教程,网页素材,SEO资讯等建站资源!

网站模板_网站源码_网站素材_建站教程_建站学习网

当前位置:建站学习网 > 建站教程 > Discuz教程 >

Discuz x3.2用户组到期后不自动切换解决方案

更新时间:2022-11-15整理编辑:建站学习网阅读:0

修改文件: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'].'' : $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]'");

       }


本文网址:https://www.dedexuexi.com/jzjc/dzjc/3545.html

本站部分文章搜集与网络,如有侵权请联系本站,转载请说明出处。

收藏此文 赞一下!() 打赏本站

如本文对您有帮助,就请建站学习网抽根烟吧!

支付宝打赏
微信打赏
Discuz!修改相关文件防御CC攻击机制
« 上一篇2022年11月15日
Discuz后台主题内容审核显示1970解决办法
2022年11月15日下一篇 »
  • Discuz注册提示“邮箱、密码等无效” 临时解决方案
    0阅读
    问题现象:注册的时候,输入正确的邮箱,或者密码确认的时候,提示输入不正确问题原因:由于注册表单中name是随机产生的,当产生name为纯数字的时候会产生问题。解决方案:打开function_core.php,找到random函数function random($length, $numeric = ...
  • Discuz调用函数实现同步登录与退出核心代码
    0阅读
    登录与退出实现同步的问题困扰了好久,忙里偷闲将部分代码抽取出来,写成函数,这样以后登录与退出只要调用一下这两个函数就可以,感兴趣的朋友可以学习下哦这个问题折磨了好久,今天特意抽出一些时间来看看discuz的源代码,将部分代码抽取出来,写成函数,这样以后登录与退出只要调用一下这两个函数就可以了。代码如...
  • Discuz教程:Discuz x3.1页面空白解决方法
    0阅读
    今天找时间分析了一下,找到了页面空白的原因,可能是因为php版本兼容性的问题所致,所以只是部分用户遇到这种情况,这里分享一下。经过分析发现是source/function/function_core.php文件中一处代码的原因:代码如下:static $replacements = array( "...
  • Discuz修改文章标题更好的SEO的方法(discuz首页怎么修改)
    0阅读
    Discuz修改文章标题更好的SEO的方法,方法很简单,可以更了的SEO我们使用Discuz的站长都知道,帖子的标题一般都是文章标题+板块+网站名称。我们现在要简化怎么办?找到/source/module/forum/forum_viewthread.php这个文件然后找到:$navtitle = ...
  • Discuz 批量删除的sql命令小结
    0阅读
    这篇文章主要介绍了discuz批量删除内容的一些sql语句,比去后台选择的方便1:批量删除回帖pre_forum_post表中存储的是论坛帖子和回复。每增加一个帖子或者回复,pid值+1.first值为1的,代表是主题。first值为0的,代表是回帖。delete from pre_forum_po...
 
QQ在线咨询