插DiscuzX件開發(fā)ppt課件_第1頁
插DiscuzX件開發(fā)ppt課件_第2頁
插DiscuzX件開發(fā)ppt課件_第3頁
插DiscuzX件開發(fā)ppt課件_第4頁
插DiscuzX件開發(fā)ppt課件_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Discuz! X 插件開發(fā)教程主講人: 楊歡2022-1-2 插件實現(xiàn)流程 文件命名規(guī)范 class_core.php 模塊功能白皮書功能需求概括設(shè)計閱讀手冊開發(fā)測試插件導(dǎo)出被引用程序文件,以 .inc.php 后綴命名普通程序文件,以 .php 后綴命名引用的函數(shù)庫或類庫,以 .func.php(函數(shù)庫) 或 .class.php(類庫) 后綴命名模板文件,以 .htm 后綴命名模板語言包文件,以 .lang.php 后綴命名Table 類文件存放于 source/plugin/identifier/table/ 目錄下,并以 table_表名.php 格式命名 PHP 及操作系統(tǒng)環(huán)境做了

2、判斷和兼容性處理初始化常量 加載所需的基本函數(shù)庫建立數(shù)據(jù)庫連接獲取用戶信息預(yù)置讀入了每個模塊的各種設(shè)置變量插件開發(fā)準(zhǔn)備工作插件模塊分類插件變量配置2022-1-2開啟開發(fā)者模式($_configplugindeveloper = 1;)程序鏈接擴(kuò)展項目程序腳本2022-1-2參數(shù)讀取參數(shù)讀取編寫插件程序時,可能需要讀取一些插件的信息,如果插件需要使用者進(jìn)行配置,還需要讀取使用編寫插件程序時,可能需要讀取一些插件的信息,如果插件需要使用者進(jìn)行配置,還需要讀取使用者設(shè)置的參數(shù)值。者設(shè)置的參數(shù)值。Discuz! 允許插件程序使用數(shù)據(jù)庫讀取和緩存讀取這兩種方法獲取插件信息和參允許插件程序使用數(shù)據(jù)庫讀取

3、和緩存讀取這兩種方法獲取插件信息和參數(shù)。數(shù)。Discuz! 的插件接口已經(jīng)對插件信息進(jìn)行了合理的緩存,使用緩存讀取的方式,將比數(shù)據(jù)庫讀的插件接口已經(jīng)對插件信息進(jìn)行了合理的緩存,使用緩存讀取的方式,將比數(shù)據(jù)庫讀取速度更快,消耗的資源更是幾乎可以忽略不計。緩存讀取唯一的局限是需要插件使用插件接口提取速度更快,消耗的資源更是幾乎可以忽略不計。緩存讀取唯一的局限是需要插件使用插件接口提供的通用后臺管理程序。如果使用自定義后臺模塊的方式,需要后臺模塊將參數(shù)存放到供的通用后臺管理程序。如果使用自定義后臺模塊的方式,需要后臺模塊將參數(shù)存放到 pluginvars 數(shù)據(jù)表中,才能被系統(tǒng)正常緩存。我們強(qiáng)烈推薦您

4、通過緩存讀取插件信息和配置數(shù)據(jù)數(shù)據(jù)表中,才能被系統(tǒng)正常緩存。我們強(qiáng)烈推薦您通過緩存讀取插件信息和配置數(shù)據(jù)。緩存控制緩存控制由于調(diào)用系統(tǒng)緩存統(tǒng)一通過由于調(diào)用系統(tǒng)緩存統(tǒng)一通過“l(fā)oadcache()”函數(shù)調(diào)用,并存放于函數(shù)調(diào)用,并存放于 $_Gcache 中,因此中,因此“l(fā)oadcache(plugin)”后插件的變量緩會存放于后插件的變量緩會存放于 $_Gcacheplugin 中。嵌入點插件和以中。嵌入點插件和以 plugin.php 為主腳本調(diào)用的插件無需加載此緩存,系統(tǒng)已自動加載了緩存。變量配置類型為為主腳本調(diào)用的插件無需加載此緩存,系統(tǒng)已自動加載了緩存。變量配置類型為“版版塊塊/*”的

5、變量會保存在的變量會保存在 $_Gcacheforumsfidplugin 中。變量配置類型為中。變量配置類型為“用戶組用戶組/*”的的變量會保存在變量會保存在 $_Gcacheusergroup_groupidplugin 和和 $_Ggroupplugin 中。中。2022-1-2廣告類腳本位置:source/class/adv/adv_name.php語言包位置:source/language/adv/lang_name.php道具類腳本位置:source/class/magic/magic_name.php語言包位置:source/language/magic/lang_name.ph

6、p任務(wù)類腳本位置:source/class/task/task_name.php語言包位置:source/language/task/lang_name.php驗證問答類腳本位置:source/class/secqaa/secqaa_name.php語言包位置:source/language/secqaa/lang_name.php驗證碼類(Discuz! X2.5 新增)腳本位置:source/class/seccode/seccode_name.php語言包位置:source/language/seccode/lang_name.php2022-1-2$sql = EOFDROP TABL

7、E IF EXISTS cdb_myrepeats;CREATE TABLE cdb_myrepeats ( uid mediumint(8) unsigned NOT NULL, username varchar(15) NOT NULL DEFAULT ,PRIMARY KEY (uid,username), KEY username (username) TYPE=MyISAM;EOF;runquery($sql);$finish = TRUE;配置文件中指定: 插件作者可以設(shè)計一個腳本文件用于插件的升級,文件名任意。腳本中可用 runquery() 函數(shù)執(zhí)行 SQL 語句,表名可以直接

8、寫“cdb_”。配置文件指定:升級程序中可通過 $fromversion 和 $toversion 變量判斷升級的具體版本號,并隨意設(shè)計頁面的跳轉(zhuǎn),只要在插件升級結(jié)束時候輸出添加以下代碼即可。$finish = TRUE;插件作者可以設(shè)計一個腳本文件用于插件在安裝、卸載、升級操作前的檢測,文件名任意。插件作者只需在導(dǎo)出的 XML 文件結(jié)尾加上檢測腳本的文件名即可插件在安裝的時候您可以自定義授權(quán)信息文本,文本支持 Discuz! 代碼,站長同意后才能安裝插件。如果插件存在后臺管理界面或者變量配置,那么插件介紹文本會顯示在插件后臺頁面中。插件作者只需在導(dǎo)出的 XML 文件結(jié)尾加上以下內(nèi)容即可。 請

9、仔細(xì)檢查您的插件是否可以在相應(yīng)的 Discuz! 版本中運行。然后在 XML 文件的以下分支中自行更改。如您的插件兼容多個版本,請用逗號(,)分隔,如“X2,X2.5”(此寫法從 Discuz! X2 R20190329 后開始支持)配置文件中添加:插件安裝時可以直接導(dǎo)入一個或多個論壇數(shù)據(jù),這些論壇數(shù)據(jù)包括表情(smilies)、風(fēng)格(styles)的數(shù)據(jù)。在導(dǎo)出的 XML 文件結(jié)尾加上需要導(dǎo)入數(shù)據(jù)的類型和數(shù)據(jù)文件名即可,多個文件名用逗號(,)分隔。 7創(chuàng)建語言包給插件創(chuàng)建語言包首先需要創(chuàng)建一個 data/plugindata/identifier.lang.php 文件,文件內(nèi)容中包含 4

10、個數(shù)組, 如下: chinese, . ); /程序腳本文件的語言包$templatelangidentifier = array( english = chinese, . ); /模版文件的語言包。$installlangidentifier = array( english = chinese, . ); /為安裝、晉級、卸載腳本用的語言包。?模版中調(diào)用模板文件語言包,經(jīng)過 lang identifier:english 方式調(diào)用。程序腳本中調(diào)用腳本文件語言包,經(jīng)過 lang(plugin/identifier, english) 方式調(diào)用。安裝腳本中調(diào)用安裝腳本文件語言包,經(jīng)過 $in

11、stalllang 變量直接獲取。如 $installlangenglish。系統(tǒng)語言包用于替換系統(tǒng)語言包中的某些語言條目。插件的模板統(tǒng)一放置到 source/plugin/identifier/template 目錄下,程序腳本通過以下語句調(diào)用插件模板文件,如下例,調(diào)用 source/plugin/identifier/template/test.htminclude template(identifier:test);模版中調(diào)用插件模版通過以下方法:template identifier:test所有與插件的程序,包括其全部的前后臺程序,請全部放入 source/plugin/ 目錄中,同

12、時在插件的安裝說明中指出,插件的文件需要復(fù)制到哪些目錄。為了避免與其他插件沖突,請盡量建立 source/plugin/ 下的子目錄,并將插件程序放置于子目錄下,這樣您編寫的插件將獲得更好的兼容性。如果您的插件包含“導(dǎo)航欄模塊,該模塊將統(tǒng)一用 plugin.php?identifier=xxx&module=yyy 的方式調(diào)用,請在相應(yīng)鏈接、表單中使用此方式。其中 xxx 為插件的惟一標(biāo)識符,yyy 為模塊名稱。前臺插件外殼程序 plugin.php 已經(jīng)加載了通用初始化模塊 /source/class/class_core.php,不需再次引用。如果您的插件包含“管理中心模塊,該模塊將統(tǒng)一用 admin.php?action=plugins&identifier=xxx&pmod=yyy 的方式調(diào)用,請在相應(yīng)鏈接、表單中使用此方式。其中 xxx 和 yyy 的定義與“導(dǎo)航欄模塊中的相同。系統(tǒng)還允許用 admin.php?action=plugins&edit=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論