Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] Discuz! X2-X3用户组到期后不自动切换解决方案。

[复制链接]
zhongq58 发表于 2013-8-13 00:50:51 | 显示全部楼层 |阅读模式
本帖最后由 zhongq58 于 2013-8-13 00:54 编辑

Discuz! X2-X3用户组到期后不自动切换解决方案。


未解决前,VIP会员到期无论怎么点击都是无法进去其它版块或者其它页面

方法一

懒人解决 可以直接下载附件替换文件:
source/include/spacecp/spacecp_usergroup.php



方法二

修改文件: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) ? '<s>'.$group['grouptitle'].'</s>' : $group['grouptitle'];
  2.                 }
  3.         }
复制代码
在它的下面加上如下代码:


  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.         }
复制代码


解决后,看效果。


代码修改完之后,别忘记了在后台工具里面更新一下缓存。再次登录以到期的VIP会员看看效果吧,
如果看了教程解决不了的,跟贴回复。我们会第一时间为你解答。

本文原文http://www.ymzj.cn/thread-67616-1-1.html 转载请注明!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
crx349 发表于 2013-8-13 01:09:35 | 显示全部楼层
感谢分享了~
回复

使用道具 举报

军刀闪亮 发表于 2013-8-13 08:42:19 | 显示全部楼层
看了一下,修改后的文件与X2.0的原文件是一模一样的,不知修改啥了。
而且如果改成$groupexpirynew = $groupterms['ext'][$extgroupidsnew];的话,个人资料页面的购买用户组的有效期就不显示了。
回复

使用道具 举报

ynynruqrv 发表于 2013-8-14 22:02:53 | 显示全部楼层
代码有待完善。

换了后特殊用户组不可购买,无提示,
积分数量无提示
用户组到期时间无提示
回复

使用道具 举报

angelr 发表于 2013-10-15 16:52:32 | 显示全部楼层
我的是x3.0,用这个方法还是不行啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-2-26 01:06 , Processed in 0.025858 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表