Discuz教程网

[代码修改] Discuz X2.5QQ登录流程修改教程

[复制链接]
authicon dly 发表于 2012-10-2 11:39:30 | 显示全部楼层 |阅读模式
本文档介绍如何优化注册、完善资料流程,请注意,本文档仅适合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 class="rfm">
  2. <table>
  3. <tr>
  4. <th><span class="rq">*</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" class="px" value="$hash[0]" required /><br /><em id="emailmore"> </em></td>
  6. <td class="tipcol"><i id="tip_{$this->setting['reginput']['email']}" class="p_tip">{lang register_email_tips}</i><kbd id="chk_{$this->setting['reginput']['email']}" class="p_chk"></kbd></td>
  7. </tr>
  8. </table>
  9. </div>
复制代码

用一下内容进行替换,并保存。
  1. <!--{if $_GET[emailfix]}-->
  2. <div class="rfm">
  3. <table style="display:none">
  4. <tr>
  5. <!--<th><span class="rq">*</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" class="px" value="$_GET[emailfix]" required /><br /><em id="emailmore"> </em></td>
  7. <td class="tipcol"><i id="tip_{$this->setting['reginput']['email']}" class="p_tip">{lang register_email_tips}</i><kbd id="chk_{$this->setting['reginput']['email']}" class="p_chk"></kbd></td>
  8. </tr>
  9. </table>
  10. </div>
  11. <!--{else}-->
  12. <div class="rfm">
  13. <table>
  14. <tr>
  15. <th><span class="rq">*</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" class="px" value="$hash[0]" required /><br /><em id="emailmore"> </em></td>
  17. <td class="tipcol"><i id="tip_{$this->setting['reginput']['email']}" class="p_tip">{lang register_email_tips}</i><kbd id="chk_{$this->setting['reginput']['email']}" class="p_chk"></kbd></td>
  18. </tr>
  19. </table>
  20. </div>
  21. <!--{/if}-->
复制代码

转自:http://www.uut8.com/discuz/151.html




上一篇:Discuz X2.5群组简介html标签错乱的解决方法
下一篇:Discuz X2管理员不受禁止关键词限制修改教程
authicon 狼夜 发表于 2012-10-3 09:39:40 | 显示全部楼层
直接修改用户组权限不也一样么
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-6-14 16:30

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表