乾脆自己動手:LifeType Blog 與 phpBB 3.0.X 論壇的整合(2)
Posted by Black Rain on 23 十月 2009 | Tagged as: 電腦網路
phpBB 版本:3.0.5
LifeType 版本:1.2.9
整合:從 phpBB 登入後,進入 LifeType 不需再登入。phpBB 的會員進入 LifeType 後,自動產生自己的 Blog
上次修訂時間:2009/10/23 9:00 pm
最後修訂時間:2009/10/23 11:26 pm (解決 LifeType 網站管理員問題)
Logout 的部分也寫好了。目前運作正常,唯一還需要處理的:
(1) phpBB3 的創站者身份似乎還無法直接對應成 LifeType 的網站最高管理者,只能是一般會員身份。這部份我處理好之後,會再發文讓大家知道
2009/10/23 11:30 pm 更新:這個問題已經解決。原來 LifeType 安裝時,已經把網站管理員的權限統統寫入資料庫中的 lt_users_permissions 這個 table. 我解決的方式,是先將這個 table 內容 export 成 sql 檔出來,然後複製所有 user_id = 1 (即網站管理員的 id) 的權限,統統改成 phpBB 創始者在 phpBB 上面的 user_id 號碼,再 import 回去 LifeType 資料庫的 lt_users_permissions Table 中。這樣,LifeType 除了原有自己的 user_id = 1 的管理員之外,還會額外多出一個新的網站管理員,其 user_id 號碼正是 phpBB 上面網站創始者的 user_id。
有了這個來自 phpBB 的 LifeType 網站管理員之後,以後若想新增其他人也有 LifeType 網站管理的權限,就可以直接從 LifeType 管理界面來賦予權限,不再需要從資料庫 Export 跟 Import 了。
(2) LifeType 的 cache 需關掉
這裡說明一下整個整合部分的運作流程:
0. LifeType 跟 phpBB3 都安裝在相同的 MySQL 資料庫。這樣可以避免將來兩者互相取用內容時,還得跨 database 抓取資料。
1. LifeType 部分:改用 phpBB3 的會員帳號與密碼資料庫 table
2. phpBB3 的部分:修改 phpBB3 安裝目錄/includes/session.php 檔 (處理 login 與 logout)
3. 隱藏 LifeType 自己的 Login 及 Logout 頁面,統統指向 phpBB 論壇的 Login 及 Logout 頁面:這部份請自己動手,我若有空,再把自己修改的結果放上來
所有程式修改檔,我已經壓縮成以下附件,有興趣者可以下載參考:
lifetype_phpbb3_en English zip file
詳細的相關程式修改說明如下
(1-1) LifeType 安裝目錄/class/dao/userdata/ 底下,換掉 phpbb2userdataprovider.class.php
新的 phpbb2userdataprovider.class.php 附在附件中的 zip 檔案中
註:由於我不想更動太多 LifeType 的程式,所以仍以 phpbb2 命名,實際上已經改成與 phpbb3 溝通
(1-2) LifeType 安裝目錄/class/dao/userdata/ 底下,放入 phpbb3_hash_inc.php . 這組 functions 不是我寫的,而是老外寫的,我只是加以整理運用到這裡的整合環境。該程式片段的原始網址是
http://www.deltascripts.com/board/viewtopic.php?id=11831
(1-3) 修改 LifeType安裝目錄/config/userdata.properties.php , 改成從 phpBB3 抓取帳號跟密碼:
註:您的 phpbb 資料庫 prefix 如果不是 “phpbb_”,也請自行修改
// 檔案名稱:userdata.properties.php
/*
關掉原先 LifeType 自己的會員資料認證
$config = Array(
"provider" => "LifeTypeUserDataProvider",
);
*/
$config = Array(
"provider" => "PhpBB2UserDataProvider",
"createBlogIfNotExisting" => true,
"database" => "安裝 phpBB3 的資料庫名稱",
"user" => "phpBB3 MySQL 使用者名稱",
"password" => 'phpBB3 MySQL 密碼' ,
"prefix" => "phpbb_"
);
(1-4) 修改 LifeType安裝目錄/config/cache.properties.php,先關掉 cache
# $config["cache_method"] = “cache_lite”;
$config["cache_method"] = “null”;
(2) 到 phpBB3安裝目錄/includes/ ,放入 zip 檔內的 lifetype_inc.php 程式檔,並且依照該檔開頭的註解,修改同目錄底下的 session.php 程式。
這裡要注意的是,我自己是將 LifeType 安裝在網站根目錄底下的 blog 目錄,所以您必須更改 lifetype_inc.php 檔案中這一行,把 blog 改成您的 LifeType 安裝目錄名稱
define(’PLOG_CLASS_PATH’,$_SERVER['DOCUMENT_ROOT'].”/blog/”)
———————————————————————–
上面這些程序都弄好後,請清掉 phpBB3 跟 LifeType 在您電腦所留下的 cookies,然後登入 phpBB3 論壇。登入後,另開一個 browser 頁面轉到 LifeType 網頁,看看是不是不需登入即可管理自己的 Blog
4 Comments »





太好了!非常期待您能完成這個大作!我也很想要試試看!
[回應]
奇怪…我的phpBB3出現了下面的錯誤…
Fatal error: Call to a member function getId() on a non-object in /XXXXXXXXXXX/public_html/phpBB3/includes/lifetype_inc.php on line 81
[回應]
謝謝您的幫忙,問題已經解決了!現在我將嘗試 lt_users_permissions 這個 table的export和 import~
[回應]
[phpBB Debug] PHP Notice: in file /includes/lifetype_inc.php on line 63: require_once(/www//blog/class/bootstrap.php) [function.require-once]: failed to open stream: No such file or directory
Fatal error: require_once() [function.require]: Failed opening required \’/www//blog/class/bootstrap.php\’ (include_path=\’.:/usr/share/php\’) in /www/110mb.com/p/u/r/p/l/3/s/t/purpl3star/htdocs/includes/lifetype_inc.php on line 63
[回應]