天天看點

phpcms2008整合discuz1.5+ucenter1.5

1.    軟體版本

1.    phpcms : phpcms2008sp4_utf8_110406.zip

2.    discuz : Discuz_X1.5_SC_UTF8.zip

3.    ucenter : Ucenter_1.5.2_SC_UTF8.z

2.    安裝

1.    phpcms2008的安裝

1.    根據源碼的說明修改相應檔案的通路權限

2.    建立資料庫phpcms

3.    phpcms 選擇必要的子產品:财務,廣告管理,評論管理,友情連結,短消息,網站公告,全站搜尋,專題,錯誤報告,表單向導,采集管理,視訊。

4.    配置資料庫資訊

5.    設定管理者和密碼(最好與discuz,ucenter的管理者賬戶設定成相同的。)

2.    ucenter的安裝

1.    根據源碼的說明修改相應檔案的通路權限

2.    建立資料庫ucenter

3.    配置資料庫資訊

4.    設定管理者和密碼(最好與discuz,phpcms的管理者賬戶設定成相同的。)

3.    discuz的安裝

1.    根據源碼的說明修改相應檔案的通路權限

2.    建立資料庫discuz

3.    單獨安裝discuz指定ucenter,填寫ucenter相應的資訊

4.    配置資料庫資訊

5.    設定管理者和密碼(最好與ucenter,phpcms的管理者賬戶設定成相同的。)

3.    整合

1.    phpcms配置

1.    我的面闆-》常用操作-》網站配置-》基本資訊

1.    Phpcms 官方網站帳号:phpcms

2.    Phpcms 官方網站密碼:phpcms

2.    我的面闆-》常用操作-》網站配置-》通行證

1.    正向通行證設定,反向通行證設定 選擇否不用設定

2.    Ucenter Client 配置是要配置的;

1.    啟用選擇是

2.    ucenter api位址:ucenter的根目錄位址

3.    ip位址:本地:127.0.0.1,如果不是本地填寫相應的ip位址

4.    填寫ucenter資料庫相應的資訊

5.    應用id:2 (稍後在ucenter中設定phpcms時将産生phpcms的應用id,要和這裡的一緻)

6.    ucenter通信密鑰:phpcms(要和ucenter配置phpcms應用時的密鑰要一緻)

7.    測試資料庫連結是否成功

8.    送出,成功。

2.    Ucenter配置

1.    應用管理

1.    檢視discuz!的通信情況,通信成功

2.    -》添加新應用-》自定義安裝

1.    應用名稱:phpcms

2.    應用的主url:phpcms.wolf.com (phpcms2008網站的url)

3.    應用ip 本地:127.0.0.1 如果不本地的填寫相應的ip位址

4.    通信密鑰:phpcms(和phpcms配置時的ucenter通信密鑰要一緻)

5.    應用類型:其他

6.    是否開啟同步登入:是

7.    是否接受通知:是

8.    其他項目保留預設值

9.    送出,并檢視時候送出成功,在清單中檢視時候通信成功。

3.    Discuz配置

1.    站長-》ucenter配置:将ucenter連接配接方式改為接口方式,其他保留原來的資料。

4.    代碼修改解決使用者同步免激活

1.    discuz代碼修改:/api/uc.php : 168 synlogin 函數修改為一下代碼:

function synlogin($get, $post) {

   global $_G;

   if(!API_SYNLOGIN) {

    return API_RETURN_FORBIDDEN;

   }

   header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

   $cookietime = 31536000;

   $uid = intval($get['uid']);

   $query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");

   if($member = DB::fetch($query)) {

    dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);

   }else{

       $username = $get['username'];                       

             $password = md5(time().rand(100000, 999999));

             $email = $get['email'];

             $ip = $_SERVER['REMOTE_ADDR'];

             $time = time();  

             $userdata = array(

                         'uid' => $uid,

                         'username' => $username,

                         'password' => $password,

                         'email' => $email,

                         'adminid' => 0,

                         'groupid' => 10,

                         'regdate' => $time,

                         'credits' => 0,

                         'timeoffset' => 9999

             );

             DB::insert('common_member', $userdata);

             $status_data = array(

                         'uid' => $uid,

                         'regip' => $ip,

                         'lastip' => $ip,

                         'lastvisit' => $time,

                         'lastactivity' => $time,

                         'lastpost' => 0,

                         'lastsendmail' => 0,

             );

             DB::insert('common_member_status', $status_data);

             DB::insert('common_member_profile', array('uid' => $uid));

             DB::insert('common_member_field_forum', array('uid' => $uid));

             DB::insert('common_member_field_home', array('uid' => $uid));

             DB::insert('common_member_count', array('uid' => $uid));

             $query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");

             if($member = DB::fetch($query)) {

                 dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);

             }

   }

 }

2.    phpcms2008代碼修改:/member/register.php : 66 将if語句if($memberinfo['modelid'] && $M['choosemodel'] && !$M['enablemailcheck'] && !$M['enableadmincheck'])中的内容替換成

 list($uc_uid, $uc_username, $uc_password, $uc_email) =  uc_call("uc_user_login", array($memberinfo['username'], $memberinfo['password']));

$synlogin_code = uc_call('uc_user_synlogin', array($uc_uid));

showmessage('開始填寫詳細資料!'.$script.$synlogin_code, $M['url'].'register_model.php');

5.    更新phpcms,ucenter,discuz的緩存