為了獲取更多最新內(nèi)容及功能更新,請(qǐng)直接訪問我們的首頁(yè)以查看DzzOffice筆記的最新地址。
插件實(shí)現(xiàn)流程
在開始編寫DzzOffice插件之前,您應(yīng)當(dāng)首先對(duì)插件開發(fā)流程有一個(gè)大致的了解。以下是推薦的插件開發(fā)流程:
- 在熟練掌握DzzOffice系統(tǒng)的基礎(chǔ)上,對(duì)希望完善或補(bǔ)充的個(gè)性化功能進(jìn)行評(píng)估,進(jìn)而提出插件的功能需求。
- 對(duì)插件進(jìn)行概要設(shè)計(jì),如:需使用哪些菜單、參數(shù),配置哪些選項(xiàng)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、前后臺(tái)實(shí)現(xiàn)哪些功能等。
- 閱讀本文檔并在系統(tǒng)設(shè)置中實(shí)際體驗(yàn)DzzOffice插件接口所實(shí)現(xiàn)的功用,如:如何設(shè)計(jì)插件以便順利接入官方應(yīng)用市場(chǎng),插件接口能實(shí)現(xiàn)哪些功能、不能實(shí)現(xiàn)哪些功能,以及插件為此所需的優(yōu)化、改造和取舍。
- 編寫相應(yīng)程序代碼和模板語(yǔ)句,實(shí)現(xiàn)所需的功能并進(jìn)行代碼測(cè)試、兼容性測(cè)試和代碼改進(jìn)。
- 如有必要公開插件,可將其配置信息導(dǎo)出為XML文件,并與相應(yīng)程序和模板文件一同打包。同時(shí),編寫一份適用于新手的插件說明書也是必不可少的,包括:插件適用的DzzOffice版本、功能概述、兼容性聲明、安裝方法、使用方法、卸載方法等。
- 將插件提供給他人或自行使用,根據(jù)使用者反饋對(duì)插件進(jìn)行完善。至此,插件開發(fā)流程結(jié)束。
文件命名規(guī)范
identifier:應(yīng)用的唯一標(biāo)識(shí)符唯一標(biāo)識(shí)符用于在后續(xù)的插件模塊中調(diào)用本插件,必須確保不與現(xiàn)有插件重復(fù)。命名規(guī)則應(yīng)遵循與 PHP 變量命名相同的規(guī)范。盡管在初次設(shè)置后仍可進(jìn)行更改,但強(qiáng)烈建議一次性完成此配置設(shè)置,以免引發(fā)大量的代碼變更并增加編碼的復(fù)雜性。請(qǐng)注意:唯一標(biāo)識(shí)符請(qǐng)勿設(shè)置得過短,或使用可能導(dǎo)致與其他插件重復(fù)的命名。例如插件名稱為“小胡插件”,則唯一標(biāo)識(shí)符可設(shè)置為“xiaohu”。最后,在dzz/目錄中創(chuàng)建與唯一標(biāo)識(shí)符同名的目錄名,如 dzz/xiaohu/。DzzOffice遵循以下規(guī)范對(duì)程序和模板進(jìn)行命名,請(qǐng)?jiān)谠O(shè)計(jì)插件時(shí)盡量遵循此命名規(guī)范:
- 可直接通過瀏覽器訪問的普通程序文件,以.php為后綴命名。
- 被普通程序文件引用的程序文件,以.inc.php為后綴命名。
- 被普通程序文件或引用程序文件引用的函數(shù)庫(kù)或類庫(kù),以function_.php(函數(shù)庫(kù))或class_.php(類庫(kù))為后綴命名。
- 模板文件,以.htm為后綴命名,插件模板文件位于dzz/identifier/template/目錄中,移動(dòng)端插件模板位于dzz/identifier/template/mobile/目錄中。
- 模板語(yǔ)言包文件,以.php為后綴命名,插件語(yǔ)言包文件位于dzz/identifier/language/zh-cn/目錄中,文件名為lang.php。
- 動(dòng)態(tài)緩存文件,存放于/data/cache目錄中,根據(jù)不同的用途進(jìn)行獨(dú)立命名。
- 使用后臺(tái)數(shù)據(jù)備份功能生成的備份文件,通常以.sql為后綴,存放于data/目錄中。
- 某些目錄中存在內(nèi)容為空白的index.htm文件,此類文件旨在避免Web服務(wù)器在打開Directory Index時(shí)可能產(chǎn)生的安全問題。
- 自DzzOffice 2.0起,產(chǎn)品對(duì)數(shù)據(jù)表進(jìn)行了封裝,封裝后的文件統(tǒng)一命名為Table類,通過"C::t(Table類文件名)"方式調(diào)用。插件如需封裝自己的數(shù)據(jù)表,可將Table類文件存放于dzz/identifier/class/table/目錄下,并以table_表名.php格式命名。
注意事項(xiàng)
請(qǐng)?jiān)谀鷦?dòng)手編寫插件之前,務(wù)必仔細(xì)閱讀以下原則,并遵循這些原則以避免可能發(fā)生的問題:
- 請(qǐng)將所有與插件相關(guān)的所有程序(包括前端和后端程序)放置于 dzz/ 目錄中。同時(shí)在插件的安裝說明中指出,插件的文件需要復(fù)制到哪些目錄。為了避免與其他插件沖突,請(qǐng)盡量建立 dzz/ 下的子目錄,并將插件程序放置于子目錄下,這樣您編寫的插件將獲得更好的兼容性。
- 如果您的插件包含“導(dǎo)航欄”模塊,該模塊將統(tǒng)一用 index.php?mod=xxx&op=yyy 的方式調(diào)用,請(qǐng)?jiān)谙鄳?yīng)鏈接、表單中使用此方式。其中 xxx 為插件的惟一標(biāo)識(shí)符,yyy 為模塊名稱。前臺(tái)插件外殼程序 index.php 已經(jīng)加載了通用初始化模塊 /core/class_core.php,不需再次引用。
- 如果您的插件包含“管理中心”模塊,該模塊將統(tǒng)一用 index.php?mod=xxx&op=admin 的方式調(diào)用,請(qǐng)?jiān)谙鄳?yīng)鏈接、表單中使用此方式。其中 xxx 為插件的惟一標(biāo)識(shí)符,admin 為模塊名稱。
- 請(qǐng)勿繞過插件的前后臺(tái)外殼(index.php 和 admin.php)而以直接調(diào)用某程序的方式編寫插件。這種做法會(huì)導(dǎo)致用戶使用不便、代碼冗余和不規(guī)范,同時(shí)又產(chǎn)生了因驗(yàn)證程序考慮不周到而帶來的安全隱患。您可以在任何地方(如鏈接和表單)方便地使用上述 URL 地址調(diào)用插件模塊。
- 由于所有與插件相關(guān)的程序(包括前端程序)都使用外殼調(diào)用,請(qǐng)務(wù)必在第一行添加以下代碼:
if(!defined('IN_DZZ')) {
exit('Access Denied');
}
后臺(tái)程序第一行添加以下代碼:
if (!defined('IN_DZZ') && !defined('IN_ADMIN')) {
exit('Access Denied');
}
以免其被 URL 直接請(qǐng)求調(diào)用,產(chǎn)生安全問題。
- 通常情況下,請(qǐng)使用插件導(dǎo)出的功能發(fā)布插件,以便用戶一次性導(dǎo)入插件的配置數(shù)據(jù)。在極特殊情況下,,也可以分步驟告知使用者如何進(jìn)行插件配置管理和安裝此插件。
- 若功能獨(dú)立,請(qǐng)盡量使用單獨(dú)程序的方式編寫插件(即外掛型插件),并盡量減少對(duì) DzzOffice 本身代碼的修改,這將為使用者今后的升級(jí)帶來很大方便。
- 您可以修改 DzzOffice 本身的數(shù)據(jù)結(jié)構(gòu),但推薦在不影響效率的前提下將插件數(shù)據(jù)存儲(chǔ)在另外的數(shù)據(jù)表中,以防您添加的字段、索引與后期版本 DzzOffice 核心數(shù)據(jù)字段重名。
- 請(qǐng)?jiān)诓寮f明書中對(duì)插件進(jìn)行詳盡描述,如新增字段、表、程序,版本兼容性,后續(xù)支持方式(如不提供支持或采用特定方式提供)。若可能,請(qǐng)?zhí)峁┎寮男遁d方法,包括去除字段、刪除新增程序、恢復(fù)被插件修改的程序等。使用者會(huì)感激您為此付出的辛勤勞動(dòng),甚至愿意支付相應(yīng)的費(fèi)用支持您未來的發(fā)展。
- 若插件使用另外的數(shù)據(jù)表存儲(chǔ),請(qǐng)?jiān)诓寮芾碇袦?zhǔn)確設(shè)置插件所使用的數(shù)據(jù)表名稱(不含前綴),以便用戶在備份數(shù)據(jù)時(shí)能一并備份插件數(shù)據(jù)。
更多建議: