discuz二次开发:Discuz! X2.5QQ登录流程修改方法

2013-05-13 08:08 阅读 849 次 评论关闭

本文档介绍如何优化注册、完善资料流程,请注意,本文档仅适合Discuz! X2.5版本。

应用场景:Discuz! X2.5对QQ登录流程进行了修改,默认为QQ游客组,如果QQ初次登录后进行发帖或使用漫游应用时,提示权限有限,需完善资料,致使部分以QQ登录用户为主的站点用户流失严重。

主要修改思路:修改QQ首次登录后的跳转到完善资料页,并在跳转之前增加一段随机生成电子邮件地址代码,邮件地址后缀取的是网站的域名;完善资料页调用系统模版的register.htm文件,对是否为QQ首次登录做出判断,接到$_GET的电子邮件地址并隐藏显示,无需用户填写,用户名自动获取。

修改方法如下:

需修改2处文件,修改文件后请到后台更新缓存。

1、source/plugin/qqconnect/connect/connect_login.php

修改方法:

找到$utilService->redirect($referer); ,注释掉;用下面的代码替换,并保存;

  1. $emailstr = substr(str_shuffle(adcdefghijklmnopqrstuvwxyzQWERTYUIOPASDFGHJKLZXCVBNM1234567890), 0, 12);
  2. $len = strlen($_G['siteurl']);
  3. $firstsub = substr($_G['siteurl'], 0, $len-1);
  4. $poss = strpos($firstsub, '.');
  5. $firstpreg = substr($firstsub, $poss+1);
  6. $emailfix = $emailstr.'@'.$firstpreg;
  7. dheader('Location: member.php?mod=connect&referer=index.php&emailfix='.$emailfix);

2、template/default/member/register.htm修改方法:找到以下内容:

  1. <div>
  2.     <table>
  3.         <tr>
  4.             <th><span>*</span><label for="{$this->setting['reginput']['email']}">{lang email}:</label></th>
  5.             <td><input type="text" id="{$this->setting['reginput']['email']}" name="" autocomplete="off" size="25" tabindex="1" value="$hash[0]" required /><br /><em id="emailmore">&nbsp;</em></td>
  6.             <td><i id="tip_{$this->setting['reginput']['email']}">{lang register_email_tips}</i><kbd id="chk_{$this->setting['reginput']['email']}"></kbd></td>
  7.         </tr>
  8.     </table>
  9. </div>

用一下内容进行替换,并保存。

  1. <!--{if $_GET[emailfix]}-->
  2.     <div>
  3.         <table style="display:none">
  4.             <tr>
  5.                     <!--<th><span>*</span><label for="{$this->setting['reginput']['email']}">{lang email}:</label></th>-->
  6.                         <td><input type="hidden" id="{$this->setting['reginput']['email']}" name="" autocomplete="off" size="25" tabindex="1" value="$_GET[emailfix]" required /><br /><em id="emailmore">&nbsp;</em></td>
  7.                     <td><i id="tip_{$this->setting['reginput']['email']}">{lang register_email_tips}</i><kbd id="chk_{$this->setting['reginput']['email']}"></kbd></td>
  8.             </tr>
  9.         </table>
  10.     </div>
  11. <!--{else}-->
  12.     <div>
  13.             <table>
  14.                     <tr>
  15.                 <th><span>*</span><label for="{$this->setting['reginput']['email']}">{lang email}:</label></th>
  16.                 <td><input type="text" id="{$this->setting['reginput']['email']}" name="" autocomplete="off" size="25" tabindex="1" value="$hash[0]" required /><br /><em id="emailmore">&nbsp;</em></td>
  17.                 <td><i id="tip_{$this->setting['reginput']['email']}">{lang register_email_tips}</i><kbd id="chk_{$this->setting['reginput']['email']}"></kbd></td>
  18.             </tr>
  19.         </table>
  20.     </div>
  21. <!--{/if}-->

最后上传覆盖对应文件的内容,然后在看看效果吧!

更多discuz二次开发的教程:

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:discuz二次开发:Discuz! X2.5QQ登录流程修改方法 | 猎微网

评论已关闭!