為了能夠在 CI 中,取得 Discuz $_G 這個超級變數,我把 /source/class/class_core.php 直接載入了 CI 作為一個 Librarries。
在 CodeIgniter 中整合 Discuz X2.5, 引用超級變數 $_G 來獲取用戶名, uid等資訊.
但由於 Discuz X2.5 有自己的一套 input、output 機制,導致於我為 CI 所撰寫的
$hook['display_override'] 會沒有反應。
這是因為 discuz 把 ob_start 設為 NULL 了,使得 $CI->output->get_output() 取不到半點字串。
為了讓它能夠正常運作,採用了一個較直接的思路:
「如果目前沒有瀏覽著論壇,則不呼叫 disucz 的 _init_output 方法」
if ( ! strpos($_SERVER['REQUEST_URI'], 'bbs') ) $this->is_in_bbs = false;
...
if ($this->is_in_bbs) $this->_init_output();
再觀察看看有沒有其它問題...
沒有留言:
張貼留言