phpcms v9 ecshop2.3.7 discuz x3.0整合

第一步:徹底安裝Phpcms v9 和 Discuz! X3.0的最新版php

  小編是將Phpcms v9安裝在根目錄,而後在根目錄新建一個bbs目錄安裝Discuz! X2.5,本教程中的路徑是以此安裝目錄爲例的,站長們操做時應該以本身實際狀況更改路徑。另小編制做測試本教程時使用的是最新版的程序,因此不保證全部版本按照本教程都能整合成功,建議將程序升級到最新版。html

第二步:在 UCenter 中添加「phpsso 應用」ajax

  登陸Discuz! X3.0後臺,進入「UCenter」,點擊「應用管理」後點擊「添加新應用」進入應用添加界面,設置以下:數據庫

  一、安裝方式選擇「自定義安裝」api

  二、應用類型選擇「其餘」緩存

  三、應用名稱填「phpsso」post

  四、應用的主 URL, 即phpsso_server的路徑,視實際狀況而定,注意最後不要帶斜槓。如本教程填寫爲http://127.0.0.1/phpsso_server測試

  五、通訊密鑰,任意填寫64字節之內的英文字母及數字,不過要記住,由於phpcms 的通訊密鑰必須與此設置保持一致,不然 phpsso 將沒法與 UCenter 正常通訊。如本教程設置通訊密鑰爲:chinazthis

  六、應用IP、應用的物理路徑、查看我的資料頁面地址默認留空便可,而應用接口文件名稱默認uc.php便可。spa

  七、標籤單條顯示模板、標籤模板標記說明兩項默認留空便可。

  八、是否開啓同步登陸:是。只有開啓後,兩款程序才能實現同步登陸。

  九、完成後提交,將生成新的應用ID。(記住這個應用ID,在」第三步「中將用到它。)

  十、進入後臺「站長」,「UCenter 設置」選項。"是否容許直接激活"一項,選擇「是」。

  下面去Phpcms v9中配置phpsso。

第三步:配置phpsso

  登陸Phpcms v9後臺,進入「phpsso」,點擊「系統設置」,進入「UCenter配置」設置界面,設置以下:

  一、是否啓用:是

  二、Ucenter api 地址,即uc_server的路徑,根據你的安裝狀況而定,注意最後不要帶斜槓。如本教程填寫爲:http://localhost/bbs/uc_server

  三、Ucenter 數據庫信息:根據本身狀況填寫數據庫的信息。其中數據庫表前綴的格式爲「`數據庫名`.數據庫前綴」,注意數據庫名的不是單引號。

  四、應用id(APP ID),即第二步建立的 phpsso 應用時自動生成的應用ID。

  五、Ucenter 通訊密鑰,即第二步中設置的「通訊密鑰」,這兩個值必定要確保一致,不然會致使沒法通訊。

  第四步:查看通訊狀態

  登陸Discuz! X3.0後臺,進入「UCenter」,點擊「應用管理」查看第二步中建立的 phpsso 應用與 UCenter 通訊是否成功。若是通訊失敗,請檢查「第二步」與「第三步」中的各項參數配置是否正確。

  第五步:修改 Discuz!  X3.0會員登陸相關。

  若不修改此處則在Phpcms v9登陸後能夠同步登陸到Discuz!  X3.0,可是在Discuz!  X3.0登陸卻沒法同步登陸到Phpcms v9。修改步驟以下:

  一、找到discuz目錄下 template\default\member\login.htm,刪除

onsubmit="{if $this->setting['pwdsafety']}pwmd5('password3_$loginhash');{/if}pwdclear = 1;ajaxpost('loginform_$loginhash', 'returnmessage_$loginhash', 'returnmessage_$loginhash', 'onerror');return false;"

  二、找到discuz目錄下 template\default\member\login_s imple.htm ,刪除

onsubmit="{if $_G['setting']['pwdsafety']}pwmd5('ls_password');{/if}return lsSubmit();"

  三、找到discuz目錄下 /source/function/function_message.php ,查找

$param['header'] = true;

  替換爲

$param['header'] = false;



第六步:安裝ecshop 版本v2.7.3 release 20121106
1.把discuz X3.0程序包裏面的uc_client整個文件夾拷貝一份到ecshop根目錄下面,不須要拷貝uc_server
2.登陸ec後臺,點擊會員管理欄目的會員整合,在顯示的頁面中點擊ucenter後面的安裝按鈕
3.在顯示的窗口中輸入ucenter的URL以及創始人密碼(舒適提示:ucenter的URL就是dz程序包裏面uc_server文件夾的絕對地址,ucenter創始人密碼是安裝dz過程當中本身設置的)
4.這也是最後一步,點擊下一步選擇強制轉爲同一用戶;
5.同時清除discuz、ucenter、ecshop、phpcms四個系統的緩存


解決 Ecshop 2.7.3 與 Discuz! X3.0 的同步退出問題

最近一個項目須要整合 Ecshop 和 Discuz。整合過程很簡單,最新版的 Discuz! X2 已經自帶了 uc_server 和 uc_client。因爲主目錄是 Ecshop,Discuz 放在 bbs 目錄下,爲了減小垃圾文件,我全局修改了 Ecshop 裏關於 uc_client 的調用路徑,改爲了 discuz 裏自帶的,這樣兩個程序就共用一個 uc_client。

所有設置成接口調用方式後測試發現,兩邊登錄均可以同步登錄到另外一程序上,但退出則沒法實現同步登錄。順着 Ecshop 的退出流程,順藤摸瓜找到了 lib_common.php 文件中的 uc_call 這個方法。這個方法的第二個參數 $params 的默認值是 null。而 Ecshop 註銷時只傳了調用 uc_client 中同步退出方法名作爲一個參數的值,第二個參數使用的是默認值。而這個方法中經過 call_user_func_array($func, $params); 來調用對應的方法,問題就在這,第二個 $params 參數若是是 null 則 call_user_func_array 執行失敗。解決辦法很簡單,修改 Ecshop 裏 lib_common.php 中 function uc_call($func, $params=null) 這一行改爲 function uc_call($func, $params=array()) 便可。

整合完成
相關文章
相關標籤/搜索