## discuz插件開發(3天)
適合人群:
php開發人員
內容:
1. discuz插件機制
2. discuz開發代碼規范
3. 安全過濾機制
4. 數據庫操作類 DB CT
5. 常用全局函數
6. ajax操作
7. 模板嵌入插件機制
官方插件開發文檔:http://open.discuz.net/?ac=document&page=dev_plugin
## 注意事項
* 被普通程序文件引用的程序文件,以 .inc.php 后綴命名。
* 被普通程序文件,或引用程序文件引用的函數庫或類庫,以 .func.php(函數庫) 或 .class.php(類庫) 后綴命名。
* 模板文件,以 .htm 后綴命名,插件模板文件存在于 source/plugin/wanka/template/ 目錄中,手機版插件模板存在于 source/plugin/wanka/template/mobile/目錄中
* 模板語言包文件,以 .lang.php 后綴命名,插件語言包文件開發時存放于 data/plugindata/ 目錄中,文件名為identifier.lang.php。
## class_core.php 模塊功能白皮書
* 初始化常量 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']。
* 預置讀入了每個模塊的各種設置變量。
* [X2.5變更內容] $_G['username'] 將不進行 addslashes 處理。
- 概述概述
- 本地安裝discuz環境
- discuz目錄結構
- DISCUZ模板開發
- 如何創建一個模板
- 模板網頁自定義header和footer
- 模板標簽語法
- 書寫全局CSS和局部CSS
- Discuz內置常用JS函數
- 手機touch版開發
- 作業:完成一個topic頁面
- DISCUZ插件開發
- discuz開啟開發者模式
- 新插件的創建
- 插件頁面嵌入點機制
- 插件模板機制
- 數據庫DB類和CT類
- 插件手機版開發
- 插件后臺函數
- 數據詞典
- 插件緩存機制,配置參數讀取
- 積分函數
- 計劃任務模塊開發
- 緩存更新模塊開發
- 插件安裝、更新、卸載腳本
- 插件安全方面的一些注意事項
- UC接口開發
- discuz擴展開發機制
- DISCUZ內部機制
- DISCUZ單頁開發