Title: 为Discuz!6.1增加推荐人记录查询功能
Auther: CiBill
Date: 2008-05-26
演示地址:http://www.ifoxes.cn
注意:本版只适合于 Discuz! 6.1.0正式版!6.0版请到以下地址下载:
https://discuz.dismall.com/viewthread.php?tid=862017
如果您没有对register.php 及 members.inc.php 及 admincp.lang.php 进行过更改请直接上传文件覆盖。
更新前请做好备份!
论坛推广中心一直是很多论坛都有安装的热门插件之一,但是由于Discuz!系统本身没有记录具体的推荐人,导致有部分用户投机取巧,利用代理,ADSL等违规手段注册小号骗取推广积分,影响推广效果及推广活动的公平性。
经过考虑,添加了在注册的时候推荐人也同时记录到数据库中,并在管理后台用户编辑增加推荐人查询这个功能。升级后,后台用户管理可以通过推荐人字段查找到该推荐人的所有下线ID,方便进行统计,也能够一定程度的防止刷积分的行为。
该升级补丁涉及1个数据表,及3个文件。如果您喜欢自己动手,请按以下方法进行升级:
手动升级方法:
=================================================
1、升级数据表members,增加fromuser字段:
//红色部分如果你修改过Discuz!6.1的数据库表前缀,请更改为你的标前缀。
ALTER TABLE `cdb_members` ADD `fromuser` varchar(15) NOT NULL default '';
2、修改register.php,增加推荐人记录代码:
查找:
$db->query("INSERT INTO {$tablepre}members
在其上方添加代码:
if($fromuid) {
$query = $db->query("SELECT username FROM {$tablepre}members WHERE uid='$fromuid'");
if($db->num_rows($query)) {
$fromuser = $db->result($query, 0);
}
}
查找:
$db->query("INSERT INTO {$tablepre}members (uid, username, password, secques, gender, adminid, groupid, regip, regdate, lastvisit, lastactivity, posts, credits, extcredits1, extcredits2, extcredits3, extcredits4, extcredits5, extcredits6, extcredits7, extcredits8, email, bday, sigstatus, tpp, ppp, styleid, dateformat, timeformat, pmsound, showemail, newsletter, invisible, timeoffset)
VALUES ('$uid', '$username', '$password', '$secques', '$gendernew', '0', '$groupinfo[groupid]', '$onlineip', '$timestamp', '$timestamp', '$timestamp', '0', $initcredits, '$email', '$bday', '$sigstatus', '$tppnew', '$pppnew', '$styleidnew', '$dateformatnew', '$timeformatnew', '$pmsoundnew', '$showemailnew', '$newsletter', '$invisiblenew', '$timeoffsetnew')");
将其修改为:
$db->query("INSERT INTO {$tablepre}members (uid, username, password, fromuser, secques, gender, adminid, groupid, regip, regdate, lastvisit, lastactivity, posts, credits, extcredits1, extcredits2, extcredits3, extcredits4, extcredits5, extcredits6, extcredits7, extcredits8, email, bday, sigstatus, tpp, ppp, styleid, dateformat, timeformat, pmsound, showemail, newsletter, invisible, timeoffset)
VALUES ('$uid', '$username', '$password', '$fromuser', '$secques', '$gendernew', '0', '$groupinfo[groupid]', '$onlineip', '$timestamp', '$timestamp', '$timestamp', '0', $initcredits, '$email', '$bday', '$sigstatus', '$tppnew', '$pppnew', '$styleidnew', '$dateformatnew', '$timeformatnew', '$pmsoundnew', '$showemailnew', '$newsletter', '$invisiblenew', '$timeoffsetnew')");
3、修改用户管理页面\admin\members.inc.php,增加推荐人查找功能:
查找:
在其上方添加代码:
showsetting('members_search_fromuser', 'fromuser', $fromuser, 'text');
查找:
$conditions .= $operation == 'newsletter' && (submitcheck('submit') || submitcheck('sendsubmit', 1)) ? " AND newsletter='1'" : '';
在其上方添加代码:
$conditions .= $fromuser !=''?" AND fromuser LIKE '".trim($fromuser)."%'" : '';
查找:
"&birthday=".rawurlencode($birthday);
代码修改为:
"&birthday=".rawurlencode($birthday)."&fromuser=".rawurlencode($fromuser);
打开templates/default/admincp.lang.php,查找
'members_search_birthday' => '用户生日:',
在其下方添加代码:
'members_search_fromuser' => '推荐人:',
'members_search_fromuser_comment' => '可使用通配符 *',
至此,所有修改完成。
查询方法:
管理后台 --> 用户 --> 用户管理 --> 更多选项-->推荐人
搜索后列出满足条件的所有由该用户推荐注册的用户。
[ 本帖最后由 cibill 于 2008-5-26 19:02 编辑 ] |