经客户要求,要在discuz7.0正式版的注册页面上加上QQ必选字段,到discuz的论坛里找了半天也没找到一个合适的,然后就自己研究起来,discuz的代码真够错综复杂的,不过,还是出了结果,具体修改方法如下:
涉及到的四个文件:templates/你的模板文件夹/register.htm;templates/你的模板文件夹/messages.lang.php;ajax.php;register.php
register.htm
找到如下代码:
<label><em>{lang email}:</em><input type="text" name="email" autocomplete="off" size="25" id="email" onBlur="checkemail()" tabindex="1" class="txt" /> *</label>
在它下面添加:
<!-- 增加QQ注册 -->
<label><em>QQ:</em><input type="text" id="qq" name="qq" onBlur="checkqq()" autocomplete="off" size="25" maxlength="15" value="" tabindex="1" class="txt" /> *</label>
并在文件低部加一个js的QQ验证函数:
//验证QQ
function checkqq() {
var qq = trim($('qq').value);
if(qq == '' || qq == lasteqq) {
return;
} else {
lastqq = qq;
}
ajaxget('ajax.php?infloat=register&handlekey=register&action=checkqq&qq=' + qq, 'returnmessage4');
}
register.php
找到如下代码:
$db->query("REPLACE INTO {$tablepre}memberfields (uid, authstr $fieldadd1) VALUES ('$uid', '$authstr' $fieldadd2)");
改成:
$db->query("REPLACE INTO {$tablepre}memberfields (uid, qq, authstr $fieldadd1) VALUES ('$uid', '$qq', '$authstr' $fieldadd2)");
ajax.php
找到:
elseif($action == 'checkemail') {
$email = trim($email);
require_once DISCUZ_ROOT.'./uc_client/client.php';
$ucresult = uc_user_checkemail($email);
if($ucresult == -4) {
showmessage('profile_email_illegal', '', 1);
} elseif($ucresult == -5) {
showmessage('profile_email_domain_illegal', '', 1);
} elseif($ucresult == -6) {
showmessage('profile_email_duplicate', '', 1);
}
}
在它下面添加一个QQ验证方法:
///验证QQ
elseif($action == 'checkqq') {
$qq = trim($qq);
$len = strlen($qq);
if(!preg_match( "/^[0-9]+$/",$qq) or $len<5 ){
showmessage('profile_qq_duplicate', '', 1);
}
}
messages.lang.php
添加一行:
'profile_qq_duplicate' => 'QQ号必须为数字,且不小于 5 位数',
0 评论:
发表评论