FAQ首页 > 安装使用 > Discuz!NT > 查看文章
收起边栏
大字 小字 收藏 复制URL










3.1
会员用户组,不随积分即时变动的解决方案
2010-10-12┆17,060 Views┆3
信息来源:http://nt.discuz.net/showtopic-129793.html

1、使用官方编译版本,未作二次修改的用户(适用3.1版本)
直接下载附件,覆盖同名文件即可(记得先备份)

2、源码修改,能自行编译的用户
打开文件:
\Discuz.Forum\UserCredits.cs

找到方法public static int UpdateUserCredits(int uid),将其中的:
            if (uid > 0)
                return UpdateUserCredits(Users.GetShortUserInfo(uid));
            else
                return 0;

替换为:

            if (uid > 0)
            {
                Discuz.Data.UserCredits.UpdateUserCredits(uid);
                ShortUserInfo userInfo = Users.GetShortUserInfo(uid);
                UserGroupInfo tmpUserGroupInfo = UserGroups.GetUserGroupInfo(userInfo.Groupid);

                if (tmpUserGroupInfo != null && ((tmpUserGroupInfo.System == 0 && tmpUserGroupInfo.Radminid == 0)
                    || (tmpUserGroupInfo.Groupid == 7 && userInfo.Adminid == -1)))//当用户是已删除的特殊组成员时,则运算相应积分,并更新该用户所属组信息
                {
                    tmpUserGroupInfo = GetCreditsUserGroupId(userInfo.Credits);
                    if (tmpUserGroupInfo.Groupid != userInfo.Groupid)//当用户所属组发生变化时
                    {
                        Discuz.Data.Users.UpdateUserGroup(userInfo.Uid.ToString(), tmpUserGroupInfo.Groupid);
                        Discuz.Data.OnlineUsers.UpdateGroupid(userInfo.Uid, tmpUserGroupInfo.Groupid);
                    }
                }
                return 1;

            }
            else
                return 0;

然后删掉不用的方法public static int UpdateUserCredits(ShortUserInfo userInfo)(可选)

fix_usergroupupdate

fix_usergroupupdate.zip(139 KB)

3

满意

不满意

本篇文章用到的Tags : 方案 会员 积分 用户

没找到您想要的答案吗?建议您到我们的讨论区发帖寻求大家和 Comsenz 工作人员的帮助。