本文由Coxxs原创,转载请注明原地址:https://dev.moe/389
更新:本问题已提交至 Discuz! F 官方,并已在新版得到官方修复。
更新了 Discuz F1.0,试了试“新”触屏版(其实就是微社区搬来的啊喂!),结果发现这搬得相当不完整,有很多功能异常及缺失。摸索了一个晚上,修复了最重要的QQ登录无法使用的问题,在此记录。
首先,要使用“触屏版”的QQ登录,需要在后台启用“微信登录”插件。
然后对以下文件进行修改:
template/default/m/js/login.js
找到(约117行)
[javascript]
TOOLS.dget(DOMAIN + ‘plugin.php?id=wechat&ac=logout&hash=’ + login.formhash, null, function () {
var url = DOMAIN + ‘plugin.php?id=wechat:connect&op=init’
+ ‘&referer=’ + encodeURIComponent(location.search
+ ‘&openid=’ + encodeURIComponent($(‘#loginBox input[name=openid]’)[0].value)
+ ‘&openidsign=’ + encodeURIComponent($(‘#loginBox input[name=openidsign]’)[0].value)
);
TOOLS.openNewPage(url);
});
[/javascript]
替换为
[javascript]
var url = DOMAIN + ‘plugin.php?id=wechat:connect&op=init&referer=’ + encodeURIComponent(location.search);
TOOLS.openNewPage(url);
[/javascript]
再找到(约40行)
[javascript]
if (TOOLS.getQuery(‘loginUrl’)) {
TOOLS.dajax(‘GET’, unescape(TOOLS.getQuery(‘loginUrl’)), null, function (r) {
login.loginSuccess();
}, null, ‘text/plain’);
}
if (TOOLS.getQuery(‘loginErr’)) {
var loginErr = TOOLS.getQuery(‘loginErr’);
if (loginErr == 1001) {
TOOLS.showTips(‘此QQ帐号尚未绑定,无法登录’, true);
}
}
[/javascript]
替换为
[javascript]
if (TOOLS.getQuery(‘loginErr’)) {
var loginErr = TOOLS.getQuery(‘loginErr’);
if (loginErr == 1001) {
TOOLS.showTips(‘此QQ帐号尚未绑定,无法登录’, true);
}
} else if (TOOLS.getQuery(‘loginUrl’)) {
login.loginSuccess();
}
[/javascript]
source/plugin/wechat/connect.inc.php
找到(约15行)
[php]
$referer = ‘http://wsq.discuz.qq.com/’.$_GET[‘referer’];
[/php]
替换为
[php]
$referer = $_G[‘siteurl’].’m/’.$_GET[‘referer’];
[/php]
修改好两个文件后,务必更新缓存,然后测试是否解决。
另外,需要注意的是,原微社区的QQ登录是不支持在电脑上进行的,因此新触屏版也不支持在电脑上进行QQ登录(会提示 redirect uri is illegal),需要使用手机(或手机的 useragent)进行登录。
完成以上修改后,新的触屏版就支持http下的QQ登录了。如果网站支持https,还需要对这两个文件做一些额外的修改。由于各网站配置、环境不同,这里就不再叙述方法了。
Coxxs
和博主经历好像….刚刚中考完。这几个月的技术增长特别特别快。一直研究的是网络前端开发和路由器。