最近有朋友提出問題v9.1.7(20110909) 與 discuz 新版 X2 整合過程中有問題。由于V9中默認整合的Ucenter 版本為1.5.1 (即適用于 Discuz X1.5 以下 DISCUZ 7.0 之上的版本 ),而最新的Discuz X2 中升級了Ucenter 版本至 Ucenter 1.6 ,由于接口文件的變動 所以會導致一些無法同行問題。
現給出如下解決方案:
第一步:確定你的CMS及PHPSSO版本為最新版v9.1.7(20110909)。注:截至發此文章時間最新版為該版本。官方版本最更新后會在此處說明
第二步:使用新的uc_client文件,打開phpsso_serverapi 目錄修改原uc_client目錄名稱為uc_client名稱為uc_client.1.5.1,然后將下面文件解壓后覆蓋到該目錄下。
下載地址:uc_client.rar
第三步:使用下面文件覆蓋phpsso_serverphpcmslibsfunctionsglobal.func.php。注意!是phpsso_server中的global.func.php,不是cms中的
下載地址:global.func.rar
第四步:登錄phpsso后臺,系統設置 > uc設置 ,配置相應的整合信息,如圖。注意!在前綴前增加數據庫名稱,格式如:`bbs`.pre_uc_
第五步:登錄Ucenter后臺,添加應用,配置相應的信息,這里不詳細說明,如圖
第六步:更新緩存,包括phpsso緩存,ucenter緩存,discuz 緩存。
此時你會發現從CMS中登錄退出,論壇可以同步登錄退出,但是在論壇登錄退出無法同步登錄退出cms,由于discuz本身的一些問題,為了解決該問題,我們需要修改一下discuz的代碼。
第七步:修改Discuz中文件
1、修改 templatedefaultmemberlogin.htm 第36行,刪除
ajaxpost('loginform_$loginhash','returnmessage_$loginhash','returnmessage_$loginhash', 'onerror');return false;
2、修改 templatedefaultmemberlogin_simple.htm 第 2 行,刪除
onsubmit="return lsSubmit()"
3、修改 /source/function/function_message.php 第 78 行,查找
$param['header'] = true;
替換為:
$param['header'] = false;
如果你是dzx1.5 則應該修改 /source/function/function_core.php 第 1458 行,查找
$param['header'] = true;
替換為:
$param['header'] = false;
完!