WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計(jì)算
- 微博營銷
- 虛擬主機(jī)管理系統(tǒng)
- 開放平臺
- WIKI程序與應(yīng)用
- 美國十大主機(jī)
Discuz:插件設(shè)置及管理
Discuz! 6.0|Discuz! 6.0安裝|Discuz! 6.0使用|Discuz! 6.0風(fēng)格模板|Discuz! 6.0插件|Discuz! 6.0升級|Discuz! 6.0開發(fā)|Discuz! 6.0 FAQ |
插件,是基于 Discuz! 論壇系統(tǒng)之上,設(shè)計(jì)開發(fā)的一種小程序或小方案,用來實(shí)現(xiàn)對論壇現(xiàn)有功能擴(kuò)展和改進(jìn)。由于 Discuz! 已具有相當(dāng)完備的底層架構(gòu),因此插件并不需要具備很多深層的設(shè)計(jì)思想,也不需要很專業(yè)的開發(fā)人員,只要把想實(shí)現(xiàn)的功能與論壇的基本體系掛接起來,論壇就能擁有更加個(gè)性化的功能。
那么我針對插件管理和設(shè)置做一個(gè)詳細(xì)的說明。插件管理主要是針對插件設(shè)計(jì)者使用,而一般的使用者,使用插件設(shè)置即可。
我們進(jìn)到后臺 -> 擴(kuò)展設(shè)置 -> 論壇插件,可以看到個(gè)當(dāng)前安裝的插件。如圖 1 所示:
對于插件設(shè)計(jì)者來說,插件管理到底是怎么使用的呢?或者怎么設(shè)計(jì)一個(gè)插件呢?進(jìn)插件管理選項(xiàng)。首先得新增加一個(gè)插件的配置,那么在新增那里,填寫好插件名稱和唯一標(biāo)識符,提交后,就可以得到一個(gè)新的插件配置了的。如圖 2 所示:
下面的那個(gè)導(dǎo)入插件數(shù)據(jù),這個(gè)文本輸入框,這個(gè)是把插件作者設(shè)計(jì)好的配置,直接粘貼,即可導(dǎo)入論壇。如果插件在論壇的版本不一致的情況下開發(fā)的,那么勾選上 允許導(dǎo)入不同版本 Discuz! 的插件(易產(chǎn)生錯(cuò)誤!!) 即可導(dǎo)入插件的配置詳細(xì)。
在我們新增加了一個(gè)插件配置后,我們得對插件的配置進(jìn)行細(xì)節(jié)的配置。
那么我們增加好的列表里面,選擇對應(yīng)的插件,點(diǎn)詳情,如圖 3 所示:
這個(gè)就是點(diǎn)帳戶中心的詳情,進(jìn)來看到的各個(gè)基本配置。但是有這個(gè)基本配置還是不夠的。
那么需要增加對應(yīng)的模塊來實(shí)現(xiàn)需要的功能。但是因?yàn)闉榱瞬寮陌踩褪褂梦覀兲峁┑慕y(tǒng)一調(diào)用接口,那么配置對應(yīng)的模塊:如圖 4 所示:
增加對應(yīng)模塊的方法,同樣是寫上模塊的名稱(模塊的標(biāo)識符)和 菜單名稱即可增加新的模塊。
直接鏈接URL,這個(gè)選項(xiàng),如果填寫,那么這個(gè)就是在前臺增加一個(gè)url鏈接,直接跳轉(zhuǎn)到你填寫的地址。
模塊類型有下面幾種:
直接鏈接(前臺菜單):可在前臺右上角加入一個(gè)菜單項(xiàng),可自主指派菜單鏈接的 URL。注意:由于引用外部程序,因此即便設(shè)置了模塊的使用等級,您的程序如需權(quán)限判斷,仍需要引用 common.inc.php 和插件相關(guān)的緩存文件,并自行判斷使用等級是否合法。
前臺調(diào)用(前臺菜單):與直接鏈接類似,但其調(diào)用的是插件的一個(gè)模塊,模塊文件名指派為“./plugins/插件目錄/插件模塊名.inc.php”,由 plugin.php 調(diào)用此模塊。
后臺調(diào)用(后臺菜單):可在后臺插件設(shè)置中為此插件增添一個(gè)管理模塊,模塊文件名指派為“./plugins/插件目錄/插件模塊名.inc.php”,由 admincp.php 調(diào)用此模塊。
包含運(yùn)行(無菜單):可設(shè)置一個(gè)在論壇所有頁面均包含運(yùn)行的腳本,此腳本在 ./include/common.inc.php 中加載,腳本文件名指派為“./plugins/插件目錄/插件模塊名.inc.php”。請注意,為了不導(dǎo)致錯(cuò)誤的插件影響論壇運(yùn)行,在 common.inc.php 加載此模塊時(shí),屏蔽了錯(cuò)誤信息,因此請務(wù)必仔細(xì)檢查是否存在語法錯(cuò)誤,任何微小的語法錯(cuò)誤都將不被提示出來,并且導(dǎo)致此模塊不被正常加載。如果您配置了不正確的包含腳本而導(dǎo)致論壇系統(tǒng)設(shè)置無法使用,刪除服務(wù)器上相應(yīng)的腳本文件即可解決。
您可以為每個(gè)模塊設(shè)置不同的使用等級,例如設(shè)置為“超級版主”,則超級版主及更高的管理者(例如論壇管理員)可以使用此模塊。
前后臺調(diào)用方式為:
如果您的插件包含“前臺調(diào)用(前臺菜單)”模塊,該模塊將統(tǒng)一用 plugin.php?identifier=xxx&module=yyy 的方式調(diào)用,請?jiān)谙鄳?yīng)鏈接、表單中使用此方式。其中 xxx 為插件的惟一標(biāo)識符,yyy 為模塊名稱。前臺插件外殼程序 plugin.php 已經(jīng)加載了通用初始化模塊(./include/common.inc.php),不需再次引用。
如果您的插件包含“后臺調(diào)用(后臺菜單)”模塊,該模塊將統(tǒng)一用 admincp.php?action=plugins&identifier=xxx&mod=yyy 的方式調(diào)用,請?jiān)谙鄳?yīng)鏈接、表單中使用此方式。其中 xxx 和 yyy 的定義與“前臺調(diào)用(前臺菜單)”模塊中的相同。系統(tǒng)還允許用 admincp.php?action=plugins&edit=$edit&mod=$mod 的方式來生成鏈接和表單地址,$edit 和 $mod 變量已經(jīng)被插件后臺管理接口賦值,因此將這兩個(gè)變量值帶入 URL 中也是被支持的。由于后臺模塊是被 admincp.php 調(diào)用,因此已加載了通用初始化模塊(./include/common.inc.php)并進(jìn)行了后臺管理人員權(quán)限驗(yàn)證,因此模塊程序中可直接寫功能代碼,不需再進(jìn)行驗(yàn)證。
這些是模塊的設(shè)計(jì),基本的變量設(shè)置,例如本插件需要用到的設(shè)置變量,那么該怎么增加的呢?
在前面點(diǎn)進(jìn)某個(gè)插件的詳情,在最下面,就是顯示的是本插件當(dāng)前所有的變量設(shè)置:如圖 5 所示:
變量的增加和前面插件的增加類似。例如增加好了一個(gè) 管理員是否可用的 這個(gè)變量設(shè)置,點(diǎn)詳情,如圖 6 所示:
根據(jù)每一項(xiàng)的左邊的提示就可以完成一個(gè)變量的設(shè)置。
我們設(shè)計(jì)的插件變量已經(jīng)設(shè)置好了之后,如果我們需要修改到 Discuz! 本身的文件,那么我們可以使用插件鉤子。如圖 7 所示:
點(diǎn)詳情:如圖 8 所示:
最后調(diào)用是在需要修改代碼的頁面增嵌入例如 eval($hooks['accounts_hook']); 這樣的代碼即可。
現(xiàn)在整個(gè)插件的管理我介紹的差不多了。
那么設(shè)計(jì)出來的插件效果是什么樣的呢,那么我們可以到插件設(shè)置來看,進(jìn)入插件設(shè)置,如圖 9 所示:
這里就把論壇安裝的所有的插件都羅列出來。就以我們增加的插件帳戶中心來看看我們的設(shè)計(jì):首先是插件參數(shù)設(shè)置:如圖 10 所示:
對應(yīng)插件管理的設(shè)置:如圖 11 所示:
參數(shù)設(shè)置的效果就是這個(gè)樣子表現(xiàn)了的。
那么 模塊:綁定搜索 的效果,如圖 12 所示:(訪問的地址:admincp.php?action=plugins&identifier=accounts&mod=stats)
這個(gè)對應(yīng)的插件管理,如圖 13 所示:
那么實(shí)際上是后臺調(diào)用執(zhí)行了我自己寫的模塊代碼:./plugins/accounts/stats.inc.php ,如圖 14 所示:
模塊:參數(shù)設(shè)置 的效果,如圖 15 所示:(訪問地址:admincp.php?action=plugins&identifier=accounts&mod=setting)
對應(yīng)插件管理:如圖 16 所示:
那么實(shí)際上是后臺調(diào)用執(zhí)行了我自己寫的模塊代碼:./plugins/accounts/setting.inc.php 。后臺的插件設(shè)置已經(jīng)已經(jīng)介紹完畢,那么剛才還有一個(gè) 帳戶中心的這個(gè)模塊,這個(gè)到哪去了呢?這個(gè)設(shè)置為前臺的鏈接:如圖 17 所示:
可以看出是前臺的菜單模塊,而且是直接鏈接的。那么到前臺看是什么效果的呢?如圖 18 所示:
就是顯示一個(gè)鏈接,跳到你設(shè)置的直接鏈接的 url 。一個(gè)插件配置設(shè)計(jì)基本就是上面說明了的,我們可以根據(jù)需要關(guān)閉或者導(dǎo)出這個(gè)插件配置如圖 19 所示:
看完上面所有的說明,是不是發(fā)現(xiàn)設(shè)計(jì)一個(gè)插件也是如此簡單!