完善QQ互联注册方式,解决用户没有密码问题

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/118/ ]

discuz论坛自带的QQ互联插件,可以很方便的让用户使用QQ号登录discuz论坛,降低了注册门槛,提高了用户体验.但就是因为减少了注册时需要填写的信息,导致通过QQ互联方式注册的用户不知道自己的论坛密码是多少.如果UCenter用户中心只管理discuz论坛,或许个问题还可以忽略,但如果还有别的分站需要这些账户进行同步登录,怎么办?

discuz论坛自带的QQ互联插件,可以很方便的让用户使用QQ号登录discuz论坛,降低了注册门槛,提高了用户体验。但就是因为减少了注册时需要填写的信息,导致通过QQ互联方式注册的用户不知道自己的论坛密码是多少。如果UCenter用户中心只管理discuz论坛,或许个问题还可以忽略,但如果还有别的分站需要这些账户进行同步登录,怎么办?

如果不做任何修正,那么用户只能通过修改密码的方式来“找回”密码,才能登录另一个分站,这无疑是一个糟糕的用户体验。解决这一问题最好的方法就是,让用户在通过QQ互联方式注册的时候,创建一个密码。

百度了一下,发现这个问题很早以前就有前辈给出了解决方案三部曲,下边就给出最新版discuz 3.2的调整细节:

1)修改QQ互联模版文件 source/plugin/qqconnect/template/module.htm

查找如下内容:

$('{$_G['setting']['reginput']['password']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
$('{$_G['setting']['reginput']['password']}').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;

修改后如下:

//$('{$_G['setting']['reginput']['password']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
$('{$_G['setting']['reginput']['username']}').outerHTML += '$js1';
$('{$_G['setting']['reginput']['password']}').required = 1;
//$('{$_G['setting']['reginput']['password2']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
$('{$_G['setting']['reginput']['password2']}').required = 1;

2)修改会员通信接口文件 source/module/member/member_connect.php

查找如下内容:

$ctl_obj->setting['ignorepassword'] = 1;

修改后如下:

//$ctl_obj->setting['ignorepassword'] = 1;

3)修改会员注册接口文件 source/module/member/member_connect_register.php

查找 conisregister,discuz 3.2版本在第102行,把它的值由1改为0即可,修改后如下:

C::t('#qqconnect#common_member_connect')->insert(array(
	'uid' => $uid,
	'conuin' => $conuin,
	'conuinsecret' => $conuinsecret,
	'conuintoken' => $conuintoken,
	'conopenid' => $conopenid,
	'conispublishfeed' => $conispublishfeed,
	'conispublisht' => $conispublisht,
	'conisregister' => '0',
	'conisqzoneavatar' => $is_qzone_avatar,
	'conisfeed' => '1',
	'conisqqshow' => $is_use_qqshow,
));

修改完成后的效果如下图

强制用户填写密码

    评论:

    1. 暂无评论...
    2. 我来说两句:

        切换  

      磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

        切换  

      磨途歌随机验证码