大家都知道,DZ论坛使用QQ注册帐号的时候是不需要填密码的(当然独立密码还是可以再设置的,但是大多用户是不会去设置的),大多数站长觉得这样很不方便。
这样导致很严重的2中情况为:
1、因为不知道密码,用户必须使用QQ互联方式才能登陆论坛。
2、DZ论坛大多是和其他系统整合的,这种方式导致主站或其他整合站无法登陆。
我也是第一次使用DZ论坛,调试了好久,其实修改成注册必填密码还是很简单的,改动不大。需要改动2处地方
1、修改QQ互联挂件:source/plugin/qqconnect/template/module.htm。
这个文件里的一段JS把密码输入框隐藏,注释掉即可
<script type="text/javascript"> <!--{if $_G['setting']['regconnect']}--> $('reginfo_a').parentNode.className = ''; //$('{$_G['setting']['reginput']['password']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none'; $('{$_G['setting']['reginput']['username']}').outerHTML += '$js1'; //$('{$_G['setting']['reginput']['password']}').required = 0; //$('{$_G['setting']['reginput']['password2']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none'; //$('{$_G['setting']['reginput']['password2']}').required = 0; $('main_hnav').outerHTML = '$js2'; function connect_switch(op) { $('returnmessage4').className=''; $('returnmessage4').innerHTML=''; if(op == 1) { $('loginform_$loginhash').style.display='none';$('registerform').style.display='block';$('connect_member_register_tip').style.display='block';$('connect_member_loginbind_tip').style.display='none';<!--{if $_G['setting']['regconnect']}-->$('connect_tab_1').className='a';$('connect_tab_2').className='';<!--{/if}--> } else { $('loginform_$loginhash').style.display='block';$('registerform').style.display='none';$('connect_member_register_tip').style.display='none';$('connect_member_loginbind_tip').style.display='block';<!--{if $_G['setting']['regconnect']}-->$('connect_tab_1').className='';$('connect_tab_2').className='a';<!--{/if}--> } } function connect_use_available(value) { $('{$_G['setting']['reginput']['username']}').value = value; checkusername(value); } <!--{if !$_G['setting']['regconnect']}--> _attachEvent(window, 'load', function () { connect_switch(2); }, document); <!--{/if}--> <!--{if $_G['qc']['uinlimit']}--> $('registerformsubmit').disabled = true; <!--{/if}--> <!--{if $first_available_username}--> $('{$_G['setting']['reginput']['username']}').value = '$first_available_username'; <!--{/if}--> $('{$_G['setting']['reginput']['email']}').value = '$connect_email'; <!--{if $_G[gp_action] != 'activation'}--> $('registerformsubmit').innerHTML = '<span>{lang qqconnect:connect_register_finish}</span>'; <!--{/if}--> <!--{else}--> $('layer_reginfo_t').innerHTML = '{lang qqconnect:connect_register_bind}'; <!--{/if}--> <!--{if $_G[gp_action] != 'activation'}--> <!--{if !$_G['setting']['autoidselect']}--> simulateSelect('loginfield_$loginhash'); <!--{/if}--> <!--{/if}--> </script>
2、修改QQ互联注册处理文件source/module/member/member_connect.php
具体我对DZ的架构不熟悉,这段代码也不是很了解,只是尝试性的修改了下,结果就可以了
if($_G['gp_action'] == 'login') { $ctl_obj = new logging_ctl(); $ctl_obj->setting = $_G['setting']; $ctl_obj->setting['seccodestatus'] = 0; $ctl_obj->extrafile = 'connect_logging'; $ctl_obj->template = 'member/login'; $ctl_obj->on_login(); } else { require_once libfile('function/connect'); $params = $_GET; connect_params($params, $connect_params); $_G['qc']['connect_auth_hash'] = $connect_params['auth_hash']; $auth_code = authcode($_G['qc']['connect_auth_hash']); $auth_code = explode('|', $auth_code); $conopenid = authcode($auth_code[2]); $ctl_obj = new register_ctl(); $ctl_obj->setting = $_G['setting']; if($_G['setting']['regconnect']) { $ctl_obj->setting['regstatus'] = $ctl_obj->setting['regstatus'] ? $ctl_obj->setting['regstatus'] : 1; } $_G['setting']['regclosed'] = $_G['setting']['regconnect'] && !$_G['setting']['regstatus']; $_G['qc']['uinlimit'] = $_G['setting']['connect']['register_uinlimit'] && DB::result_first("SELECT COUNT(DISTINCT uid) FROM ".DB::table('connect_memberbindlog')." WHERE uin='$conopenid' AND type='1'") >= $_G['setting']['connect']['register_uinlimit']; if($_G['qc']['uinlimit']) { $_G['setting']['regconnect'] = false; } if(!$_G['setting']['regconnect']) { $ctl_obj->showregisterform = 0; $ctl_obj->setting['sitemessage']['register'] = array(); } if($_G['qc']['uinlimit']) { $ctl_obj->showregisterform = 0; $ctl_obj->setting['sitemessage']['register'] = array(); $ctl_obj->setting['regconnect'] = false; } if($_G['setting']['connect']['register_regverify']) { $ctl_obj->setting['regverify'] = 0; } $ctl_obj->setting['seccodestatus'] = 0; $ctl_obj->setting['secqaa']['status'] = 0; loadcache(array('fields_connect_register', 'profilesetting')); foreach($_G['cache']['fields_connect_register'] as $field => $data) { unset($_G['cache']['fields_register'][$field]); } $_G['cache']['profilesetting']['gender']['unchangeable'] = 0; $_G['cache']['profilesetting']['birthyear']['unchangeable'] = 0; $_G['cache']['profilesetting']['birthmonth']['unchangeable'] = 0; $_G['cache']['profilesetting']['birthday']['unchangeable'] = 0; $_G['cache']['fields_register'] = array_merge($_G['cache']['fields_connect_register'], $_G['cache']['fields_register']); if($_G['setting']['connect']['register_invite']) { $ctl_obj->setting['regstatus'] = 1; } $ctl_obj->setting['ignorepassword'] = 0; //此处修改 $ctl_obj->setting['checkuinlimit'] = 0; //此处修改 $ctl_obj->extrafile = 'connect_register'; $ctl_obj->template = 'member/register'; $ctl_obj->on_register(); }
做了个补丁包,下载后覆盖就可以了。
http://d.1tpan.com/tp0380059441
最近比较喜欢玩微博,有腾讯微博的可以来互粉下,我是有粉必互的!http://t.qq.com/hackren