|
discuz論壇自帶的QQ互聯插件,可以很方便的讓用戶使用QQ號登錄discuz論壇,降低了注冊門檻,提高了用戶體驗。但就是因為減少了注冊時需要填寫的信息,導致通過QQ互聯方式注冊的用戶不知道自己的論壇密碼是多少。如果UCenter用戶中心只管理discuz論壇,或許個問題還可以忽略,但如果還有別的分站需要這些賬戶進行同步登錄,怎么辦?如果不做任何修正,那么用戶只能通過修改密碼的方式來“找回”密碼,才能登錄另一個分站,這無疑是一個糟糕的用戶體驗。解決這一問題最好的方法就是,讓用戶在通過QQ互聯方式注冊的時候,創建一個密碼。百度了一下,發現這個問題很早以前就有前輩給出了解決方案三部曲,下邊就給出最新版discuz 3.2的調整細節:
1)修改QQ互聯模版文件 查找如下內容:- $('{$_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)修改會員通信接口文件 查找如下內容:- $ctl_obj->setting['ignorepassword'] = 1;
復制代碼
修改后如下:- //$ctl_obj->setting['ignorepassword'] = 1;
復制代碼
3)修改會員注冊接口文件 - 查找 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,
- ));[/hide]
復制代碼
修改完后,用戶qq注冊登錄,也會強制填寫密碼
|
|