在ThinkPHP3.1.2整合UCenter詳解(一) 中咱們安裝完了WBlog3.1.二、UCenter_Home_2.0_SC_UTF8和UCenter 1.6.0三個程序後。接下來接着上一篇講。找到下載的UCenter 1.6.0,把 advanced 目錄裏面的 php
uc_client 和 examples下面的api 文件夾複製到網站根目錄wblog1下,和ThinkPHP在同一目錄。找到項目W3note的配置文件夾wblog1/ Conf/,在其新建一個UCenter的配置文件 config_ucenter.php ,而後在WBlog1\W3note\Lib\ORG目錄下新建一個UCenter的通信處理類文件UcService.class.php,咱們先不要管文件裏面寫什麼代碼,後面將會講到。好了到這裏已經把後面要操做的目錄和文件都佈局好了。爲了理清目錄和文件之間的層次關係,我把目錄和文件製成目錄樹列出來: html
wblog1根目錄
| – index.php//前臺入口文件
| – admin.php
| – W3note//前臺項目
| | – Lib
| | | – ORG
| | | | –UcService.class.php //UCenter的通信處理類文件
| | – Conf//W3note項目的配置目錄
| | | –config_ucenter.php //UCenter的配置文件
| |
| – Admin
| – ThinkPHP //thinkphp3.1.2核心包和一些擴展
| – install
| – api
| | – uc.php
|
| – uc_client
| – ucenter
| – uh mysql
這樣咱們就能夠一目瞭然了。 web
如今開始api目錄裏面的uc.php 配置了,首先打開這個文件,找到36行的位置這一行代碼 sql
1 | require_onceDISCUZ_ROOT.'./config.inc.php'; |
把'./config.inc.php'這一部分替換成'./W3note/Conf/config_ucenter.php'
往下找還會看到幾處的'./config.inc.php',按照上面的操做所有替換掉。這樣作目的是把前面建的配置文件config_ucenter.php導進來。 接下來我登陸http://127.0.0.1/wblog1/ucenter,在打開左邊菜單「應用管理」這一項,而後添加一個新應用,這時咱們發現好多東西要填! thinkphp
照着下面操做就是了。先看應用類型,由於這是咱們本身開發的程序,因此就選其它吧,再看應用名稱,隨便填,只要不超過20字節就好了,我這裏填wblog。接下來是應用的主URL,這裏填網站的主頁http;//127.0.0.1/wblog1,注意了,後面沒有「/」。至於應用的其餘URL還有應用IP這兩項就跳過,不用管它了。接下來是通訊密鑰,就按其旁邊的提示填就是了,我這裏填abc123456。往下是應用的物路徑,提示說默認爲空,那就留空吧,還有查看我的資料頁面地址也留空吧。接下來是應用接口文件名稱,默認爲uc.php,保持原狀吧。繼續往下看,標籤單條顯示模板還有標籤模板標記說明這兩項也不用理它,跳過。是否開啓同步登陸,選是;是否接受通知也選是吧。終於填完了,那就點擊提交吧!
還記得前面在uc.php導入的文件config_ucenter.php嗎,裏面但是一片空白啊,如今咱們就來放些配置信息進去。剛纔咱們填好的信息提交後,會在提交按鈕下面的「應用的UCenter配置信息」下面生成了一些配置信息,咱們直接把它複製,而後粘帖到config_ucenter.php,保存。 數據庫
網上不少教程到這裏就表示通訊成功了,在這裏我很是驚訝!由於通訊並未成功!我在這裏折騰了一些時間,後來仔細檢了uc.php文件的代碼,發現59行: api
1 | require_onceDISCUZ_ROOT.'./include/db_mysql.class.php'; |
我在佈局的目錄中始終找不到db_mysql.class.php,後來發現db_mysql.class.php存UCenter_1.6.0_SC_UTF8\advanced\examples\include目錄中,這就是問題所在!由於咱們以前複製的只是UCenter_1.6.0_SC_UTF8\advanced\examples\中的api文件。 佈局
解決這一問題的辦法就是把上面的代碼修改成 網站
1 | require_onceDISCUZ_ROOT.'./uc_client/lib/db.class.php'; |
導入的數據庫類文件變了,那麼咱們也要對其所涉及的內容做相應的修改,在uc.php59行的下面如
1 | $GLOBALS['db'] =newdbstuff; |
2 | $GLOBALS['db']->connect($dbhost,$dbuser,$dbpw,$dbname,$pconnect, true,$dbcharset); |
3 | $GLOBALS['tablepre'] =$tablepre; |
修改成
1 | $GLOBALS['db'] =newucclient_db; |
2 | $GLOBALS['db']->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCONNECT, true, UC_DBCHARSET); |
3 | $GLOBALS['tablepre'] = UC_DBTABLEPRE;//關鍵 |
上面數據庫的連接信息的靜態變量來自config_ucenter.php。
好了,咱們回到後臺ucenter刷新一下頁面,發現什麼---通訊成功了!
若是按上面的操做還未通訊成功的,請留言,有空我會回覆!
本文首發網誌博客,歡迎轉載!轉載請註明本文地址,謝謝。