class_core.php 模組功能白皮書
source/class/class_core.php 是 Discuz! 的通用初始化模組程式,其幾乎被所有的外部代碼所引用,在您開始外掛程式設計之前,可以先對該模組的大致功能做一定的瞭解。class_core.php 主要完成了以下任務:
- 對不同 PHP 及作業系統環境做了判斷和相容性處理,使得 Discuz! 可以運行於各種不同配置的伺服器環境下。
- 初始化常量 IN_DISCUZ 為 TRUE,用於 include 或 require 後續程式的判斷,避免其他程式被非法引用。
- 讀取社區程式所在絕對路徑,存放於常量 DISCUZ_ROOT 中。
- 載入所需的基本函數庫 source/function/function_core.php。
- 通過 config/config_global.php 中提供的資料庫帳號資訊,建立資料庫連接。Discuz! 支援資料表的首碼,如需獲得表的全名,可使用“DB::table('tablename')”方式。
- 判斷使用者是否登入,如登入標記 $_G['uid'] 為非 0,同時將 $_G['username'](加了 addslashes 的使用者名稱,可用於不加修改的插入資料庫)、 $_G['member']['username'](原始的使用者名稱,可用於頁面顯示)、$_G['member']['password'](使用者密碼的MD5串)等相應使用者資訊賦值,其他使用者資訊存放於 $_G['member'],更多資訊可通過“getuserprofile()”擷取。
- 判斷使用者系統管理權限,將系統管理權限標記 $_G['adminid'] 為 1~3 中間的值。0 代表普通使用者;1 代表論壇管理員;2 代表超級版主;3 代表論壇版主。 將使用者權限按照其所在的主使用者組 ID 標記為 $_G['groupid'],相關許可權從該 $_G['groupid'] 所對應的系統緩衝中讀出,存放於 $_G['group']。
- 預置讀入了每個模組的各種設定變數。