麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > Discuz > 正文

Discuz!二次開發(fā)必須知道的基本知識

2024-09-11 09:02:50
字體:
供稿:網(wǎng)友

目前Discuz的站長已經(jīng)上百萬,從事Discuz二次開發(fā)的應(yīng)該也有數(shù)萬以上的人,現(xiàn)在Discuz二次開發(fā)也成為招聘的一個熱點,“Discuz!”在下文中簡稱“DZ”,要弄DZ二次開發(fā),必須至少具備如下技能:

1) 能夠理很好理解MVC構(gòu)架的原理(雖然DZ不是MVC架構(gòu)的)

2) 扎實的PHP基礎(chǔ),熟悉結(jié)構(gòu)化程序,OOP程序的寫法及應(yīng)用

3) 熟悉MYSQL就用,掌握SQL語言,懂SQL優(yōu)化者更佳

4) 熟悉使用Discuz!的各項功能

一) Discuz!的文件系統(tǒng)目錄

注:想搞DZ開發(fā),就得弄懂DZ中每個文件的功能。

a) Admin:后臺管理功能模塊

b) Api:DZ系統(tǒng)與其它系統(tǒng)之間接口程序

c) Archiver:DZ中,用以搜索引擎優(yōu)化的無圖版

d) Attachments:DZ中 ,用戶上傳附件的存放目錄

e) Customavatars:DZ中,用戶自定義頭像的目錄

f) Forumdata:DZ緩存數(shù)據(jù)的存放目錄

g) Images:DZ模板中的圖片存放目錄

h) Include:DZ常用函數(shù)庫,基本功能模塊目錄

i) Ipdata:DZ統(tǒng)計IP來路用的數(shù)據(jù)

j) Plugins:DZ插件信息的存放目錄

k) Templates:DZ模板文件的存放目錄

l) Wap:DZ無線,Wap程序處理目錄

二) 必須記熟Discuz!數(shù)據(jù)庫設(shè)計的每個表的功能,每個表中每個字段的功能.

關(guān)于DZ數(shù)據(jù)庫設(shè)計文檔,請參閱DZ相關(guān)的項目文檔

三) Discuz!的流程控制

a) 后臺流程控:DZ后臺所有的功能,均需要注冊到admincp.php文件,每個功能都至少有一個或一個以上的Action(動作),在admincp.php中,可以定義Action的執(zhí)行權(quán)限,分別為:“admin==1”管理員,或“admin==2 ||admin==3”超級版主和版主,每個Action對應(yīng)一個腳本文件,腳本文件的命名為action.inc.php(*.inc.php),并存放在admin目錄下,如執(zhí)行:admincp.php?action=dodo,相當(dāng)于執(zhí)行admin目錄下的dodo.inc.php文件

b) 前臺流程控制:前臺的流程控制比較簡單:流程是自由的,如:

首頁:index.php

會員注冊:register.php;

會員登錄:logging.php

發(fā)貼程序:post.php

會員信息:member.php

論壇內(nèi)容:forumdisplay.php

查看貼子:viewthread.php

…大部分功能,此處不一一列出…

c) DZ根目下的config.inc.php屬于整個DZ系統(tǒng)的配置文件

四) Discuz!的數(shù)據(jù)處理過程

a) DZ對mysql的數(shù)據(jù)庫操作處理全部封裝在dbstuff(db_mysql.class.php)類中

b) 所在的外部數(shù)據(jù)均通過“daddslashes()”初步過濾,然后再過濾,再根據(jù)需要處理

五) Discuz!的顯示控制(網(wǎng)站多樣式風(fēng)格輸出)

a) 顯示層就是大家通常所看到的網(wǎng)站風(fēng)格了。DZ中每套風(fēng)絡(luò)分別在templates及images下對應(yīng)一個風(fēng)格文件的存放目錄。網(wǎng)站風(fēng)格的制作,請參閱詳細(xì)的DZ風(fēng)格制作文檔

b)DZ網(wǎng)站風(fēng)格文件處理的原理:其實很簡單,DZ使用template.func.php中的parse_template()以PHP正則運算把htm模文件中的模板標(biāo)簽,轉(zhuǎn)換成了PHP代碼,并根據(jù)styleid保存在forumdata/templates下,這個有點像Smarty中的技術(shù)。

六) DZ中的語言處理

a) DZ前臺及后臺中、英語言的實現(xiàn),均是把語句定義成了語變量,然后在模板輸入,語句變量的賦值,均放在模板目錄中的*.lang.php文件中,DZ在生成網(wǎng)站風(fēng)格時就加載了這相應(yīng)的語言包。

七) DZ如何處理用戶信息(存取、計算、更新過程)

新手要做二次開發(fā),都必須掌握這數(shù)組中,每個數(shù)組元素的意義。

a) DZ的基本信息,如用戶信息,Session信息存在如下變量中:

a). $_DCACHE

b). $_COOKIE

c). $_DCOOKIE

d). $_DSESSION

e). $_DPLUGIN

b) 可以通過print_r($GLOBALS),打印全部變量

八) DZ中緩存處理機(jī)制

a) DZ中緩存處理過程都放在“cache.func.php”中,DZ的緩存處理比較簡單,其原理是把一個數(shù)組轉(zhuǎn)換成了PHP代碼,并保存在緩存目錄下,大家可打開緩存文件查看便知。

b) 使用方法:如果在新開的功能中,需要緩存某部分?jǐn)?shù)據(jù),基本上就是:

1)定義并注冊緩存名字。

2)從數(shù)據(jù)讀取相應(yīng)的數(shù)據(jù)。

3)數(shù)據(jù)在寫入緩存前作相應(yīng)處理。

4)最后寫入緩存。

具體操作,可以看文件中的代碼,做相應(yīng)的修改即可

九) DZ中模板處理機(jī)制

a) DZ獨創(chuàng)的模板處理技術(shù),類似于Smarty中的模板處理,只是具體算法,過程不同,Smarty是一種重型模板引擎方案。其原理都是把模板中的變量轉(zhuǎn)換成相應(yīng)的PHP代碼,這個過程實際是模訪JAVA中的一次編譯,多處運行。

十) DZ中權(quán)限處理機(jī)制

a) 對于DZ中前臺的每相action都有$discuz_action定義,DZ根據(jù)用戶所在的用戶組來判定用戶是否具有相應(yīng)操作$discuz_action的權(quán)限。至于后臺的權(quán)限權(quán)驗證,則更簡單了,依據(jù)“admin==1”來確定的

十一) DZ中如何實現(xiàn)URL靜態(tài)化

a) DZ中的靜態(tài)有兩法,只要懂ReWrite規(guī)劃的朋友,一看就知。

十二) DZ獨創(chuàng)的HTML編輯器,如何截取并使用,如果進(jìn)行Discuz!代和Html代碼的轉(zhuǎn)換

a) 這也算是DZ比較牛的一項技術(shù)了,在早期版中,因DZ編輯器的不足,使得很多用戶放棄了DZ,實現(xiàn)原理:通過JS把用的一些操作轉(zhuǎn)換成了DZ的bbcode代碼。這樣子提交了安全性,將帶有bbcode代碼的內(nèi)容存入數(shù)據(jù),在用戶打開頁頁時,又把bbcode代碼轉(zhuǎn)換成html代碼.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美一级片免费在线观看 | 久久久久久久久久久久免费 | 黄色片在线观看网站 | 日韩午夜一区二区三区 | 素人视频在线观看免费 | 91精品国产综合久久婷婷香 | 91精品国产91久久久久久 | 国产一国产一级毛片视频在线 | 久久久av亚洲男天堂 | 国产精品剧情一区二区在线观看 | 色999国产 | 黄色大片免费网站 | 9999在线视频 | 福利在线免费视频 | xxxxxx打针视频vk | 久久国产一级片 | 久在线观看福利视频69 | 久久久久久久久久久久久久久久久久 | 九九热在线免费观看视频 | 久久国产免费视频 | 国产妇女乱码一区二区三区 | 91成人午夜性a一级毛片 | 国产老师做www爽爽爽视频 | 精品国产一区二区三区免费 | 欧美一级免费视频 | 国产一区二区不卡视频 | 性片网站 | 色综合久久久久综合99 | 国产成人精品午夜 | 欧美国产成人在线 | 国产免费一区二区三区最新不卡 | 国产精品久久久久久久久久iiiii | 日本aaa一级片 | 日本中文字幕电影在线观看 | 精品国产91一区二区三区 | 免费国产成人高清在线看软件 | 欧美巨乳在线观看 | 免费看日韩片 | 一级毛片播放 | 亚洲亚色| 一分钟免费观看完整版电影 |