能夠理很好理解Destoon的構(gòu)架的原理
扎實(shí)的PHP基礎(chǔ),熟悉結(jié)構(gòu)化程序
熟悉MYSQL就用,掌握SQL語(yǔ)言,懂SQL優(yōu)化者更佳
熟悉使用Destoon的各項(xiàng)功能
一) Destoon的文件系統(tǒng)目錄
a) Admin:后臺(tái)管理功能模塊
b) Api:DT系統(tǒng)與其它系統(tǒng)之間接口程序
c) Archiver:DT中,用以搜索引擎優(yōu)化的無(wú)圖版
d) Attachments:DT中 ,用戶上傳附件的存放目錄
e) Customavatars:DT中,用戶自定義頭像的目錄
f) Forumdata:DT緩存數(shù)據(jù)的存放目錄
g) Images:DT模板中的圖片存放目錄
h) Include:DT常用函數(shù)庫(kù),基本功能模塊目錄
i) Ipdata:DT統(tǒng)計(jì)IP來(lái)路用的數(shù)據(jù)
j) Plugins:DT插件信息的存放目錄
k) Templates:DT模板文件的存放目錄
l) Wap:DT無(wú)線,Wap程序處理目錄
二) 必須記熟Destoon!數(shù)據(jù)庫(kù)設(shè)計(jì)的每個(gè)表的功能
每個(gè)表中每個(gè)字段的功能。關(guān)于DT數(shù)據(jù)庫(kù)設(shè)計(jì)文檔,請(qǐng)參閱DT相關(guān)的項(xiàng)目文檔
三) Destoon!的流程控制
a)后臺(tái)流程控:DT后臺(tái)所有的功能,均需要注冊(cè)到admincp.php文件,每個(gè)功能都至少有一個(gè)或一個(gè)以上的Action(動(dòng)作),在 admincp.php中,可以定義Action的執(zhí)行權(quán)限,分別為:“admin==1”管理員,或“admin==2 ||admin==3”超級(jí)版主和版主,每個(gè)Action對(duì)應(yīng)一個(gè)腳本文件,腳本文件的命名為action.inc.php(*.inc.php),并存 放在admin目錄下,如執(zhí)行:admincp.php?action=dodo,相當(dāng)于執(zhí)行admin目錄下的dodo.inc.php文件
b) 前臺(tái)流程控制:前臺(tái)的流程控制比較簡(jiǎn)單:流程是自由的,如:首頁(yè):index.php會(huì)員注冊(cè):register.php;會(huì)員登錄:logging.php發(fā)貼程序:post.php會(huì)員信息:member.php論壇內(nèi)容:forumdisplay.php查看貼子:viewthread.php…大部分功能,此處不一一列出…
c) DT根目下的config.inc.php屬于整個(gè)DT系統(tǒng)的配置文件
四) Destoon!的數(shù)據(jù)處理過(guò)程
a) DT對(duì)mysql的數(shù)據(jù)庫(kù)操作處理全部封裝在dbstuff(db_mysql.class.php)類中
b) 所在的外部數(shù)據(jù)均通過(guò)“daddslashes()”初步過(guò)濾,然后再過(guò)濾,再根據(jù)需要處理
五) Destoon!的顯示控制(網(wǎng)站多樣式風(fēng)格輸出)
a) 顯示層就是大家通常所看到的網(wǎng)站風(fēng)格了。DT中每套風(fēng)絡(luò)分別在templates及images下對(duì)應(yīng)一個(gè)風(fēng)格文件的存放目錄。網(wǎng)站風(fēng)格的制作,請(qǐng)參閱詳細(xì)的DT風(fēng)格制作文檔b)DT網(wǎng)站風(fēng)格文件處理的原理:其實(shí)很簡(jiǎn)單,DT使用template.func.php中的parse_template()以PHP正則運(yùn)算把 htm模文件中的模板標(biāo)簽,轉(zhuǎn)換成了PHP代碼,并根據(jù)styleid保存在forumdata/templates下,這個(gè)有點(diǎn)像Smarty中的技術(shù)。
六) DT中的語(yǔ)言處理
a) DT前臺(tái)及后臺(tái)中、英語(yǔ)言的實(shí)現(xiàn),均是把語(yǔ)句定義成了語(yǔ)變量,然后在模板輸入,語(yǔ)句變量的賦值,均放在模板目錄中的*.lang.php文件中,DT在生成網(wǎng)站風(fēng)格時(shí)就加載了這相應(yīng)的語(yǔ)言包。
七) DT如何處理用戶信息(存取、計(jì)算、更新過(guò)程)
新手要做二次開(kāi)發(fā),都必須掌握這數(shù)組中,每個(gè)數(shù)組元素的意義。
a) DT的基本信息,如用戶信息,Session信息存在如下變量中:
a). $_DCACHEb). $_COOKIEc). $_DCOOKIEd). $_DSESSIONe). $_DPLUGINb) 可以通過(guò)print_r($GLOBALS),打印全部變量
八) DT中緩存處理機(jī)制
a) DT中緩存處理過(guò)程都放在“cache.func.php”中,DT的緩存處理比較簡(jiǎn)單,其原理是把一個(gè)數(shù)組轉(zhuǎn)換成了PHP代碼,并保存在緩存目錄下,大家可打開(kāi)緩存文件查看便知。
b) 使用方法:如果在新開(kāi)的功能中,需要緩存某部分?jǐn)?shù)據(jù),基本上就是:
1)定義并注冊(cè)緩存名字。
2)從數(shù)據(jù)讀取相應(yīng)的數(shù)據(jù)。
3)數(shù)據(jù)在寫入緩存前作相應(yīng)處理。
4)最后寫入緩存。
具體操作,可以看文件中的代碼,做相應(yīng)的修改即可
九) DT中模板處理機(jī)制
a) DT獨(dú)創(chuàng)的模板處理技術(shù),類似于Smarty中的模板處理,只是具體算法,過(guò)程不同,Smarty是一種重型模板引擎方案。其原理都是把模板中的變量轉(zhuǎn)換成相應(yīng)的PHP代碼,這個(gè)過(guò)程實(shí)際是模訪JAVA中的一次編譯,多處運(yùn)行。
十) DT中權(quán)限處理機(jī)制
a) 對(duì)于DT中前臺(tái)的每相action都有$Destoon_action定義,DT根據(jù)用戶所在的用戶組來(lái)判定用戶是否具有相應(yīng)操作$Destoon_action的權(quán)限。至于后臺(tái)的權(quán)限權(quán)驗(yàn)證,則更簡(jiǎn)單了,依據(jù)“admin==1”來(lái)確定的
十一) DT中如何實(shí)現(xiàn)URL靜態(tài)化
a) DT中的靜態(tài)有兩法,只要懂ReWrite規(guī)劃的朋友,一看就知。
十二) DT獨(dú)創(chuàng)的HTML編輯器
如何截取并使用,如果進(jìn)行Destoon!代和Html代碼的轉(zhuǎn)換
a)這也算是DT比較牛的一項(xiàng)技術(shù)了,在早期版中,因DT編輯器的不足,使得很多用戶放棄了DT。實(shí)現(xiàn)原理:通過(guò)JS把用的一些操作轉(zhuǎn)換成了DT的 bbcode代碼。這樣子提交了安全性,將帶有bbcode代碼的內(nèi)容存入數(shù)據(jù),在用戶打開(kāi)頁(yè)頁(yè)時(shí),又把bbcode代碼轉(zhuǎn)換成html代碼
一、初始化系統(tǒng)
包含系統(tǒng)根目錄下的common.inc.php即可初始化系統(tǒng)。
例如在站點(diǎn)根目錄下創(chuàng)建一個(gè)hello.php。
示例代碼:
<?php
require 'common.inc.php';
echo 'Hello World';
?>
二、編寫邏輯
系統(tǒng)初始化之后,就可以在php文件里編寫邏輯代碼,同時(shí)也可以調(diào)用系統(tǒng)內(nèi)置的變量、函數(shù)和類了。
示例代碼:
<?php
require 'common.inc.php';
echo DT_ROOT;//輸出站點(diǎn)的物理路徑
echo '<br/>';
echo DT_PATH;//輸出站點(diǎn)的首頁(yè)地址
echo '<br/>';
$r = $db->get_one("SELECT * FROM {$DT_PRE}category");//從分類表里查詢一條數(shù)據(jù)
print_r($r);//打印讀取的數(shù)據(jù)
$A = cache_read('area.php');//讀取系統(tǒng)的地區(qū)緩存
print_r($A);//打印讀取的數(shù)據(jù)
print_r($MODULE);//打印系統(tǒng)模塊數(shù)據(jù)
message('Hello World');//輸出一段提示信息
?>
三、應(yīng)用模板
所有輸出給瀏覽器的HTML均通過(guò)模板里的規(guī)則顯示。
使用方法:
include template('a', 'b');
參數(shù)a表示模版名稱
參數(shù)b表示模板存放的目錄,此參數(shù)可以不設(shè)置
假如模板目錄為default,那么:
template('a', 'b'); 代表 template/default/b/a.htm 模板文件
template('a'); 代表 template/default/a.htm 模板文件
示例代碼:
<?php
require 'common.inc.php';
template('hello');
?>
template/default/hello.htm 模板文件需要提前創(chuàng)建
扎實(shí)的PHP基礎(chǔ),熟悉結(jié)構(gòu)化程序
熟悉MYSQL就用,掌握SQL語(yǔ)言,懂SQL優(yōu)化者更佳
熟悉使用Destoon的各項(xiàng)功能
一) Destoon的文件系統(tǒng)目錄
a) Admin:后臺(tái)管理功能模塊
b) Api:DT系統(tǒng)與其它系統(tǒng)之間接口程序
c) Archiver:DT中,用以搜索引擎優(yōu)化的無(wú)圖版
d) Attachments:DT中 ,用戶上傳附件的存放目錄
e) Customavatars:DT中,用戶自定義頭像的目錄
f) Forumdata:DT緩存數(shù)據(jù)的存放目錄
g) Images:DT模板中的圖片存放目錄
h) Include:DT常用函數(shù)庫(kù),基本功能模塊目錄
i) Ipdata:DT統(tǒng)計(jì)IP來(lái)路用的數(shù)據(jù)
j) Plugins:DT插件信息的存放目錄
k) Templates:DT模板文件的存放目錄
l) Wap:DT無(wú)線,Wap程序處理目錄
二) 必須記熟Destoon!數(shù)據(jù)庫(kù)設(shè)計(jì)的每個(gè)表的功能
每個(gè)表中每個(gè)字段的功能。關(guān)于DT數(shù)據(jù)庫(kù)設(shè)計(jì)文檔,請(qǐng)參閱DT相關(guān)的項(xiàng)目文檔
三) Destoon!的流程控制
a)后臺(tái)流程控:DT后臺(tái)所有的功能,均需要注冊(cè)到admincp.php文件,每個(gè)功能都至少有一個(gè)或一個(gè)以上的Action(動(dòng)作),在 admincp.php中,可以定義Action的執(zhí)行權(quán)限,分別為:“admin==1”管理員,或“admin==2 ||admin==3”超級(jí)版主和版主,每個(gè)Action對(duì)應(yīng)一個(gè)腳本文件,腳本文件的命名為action.inc.php(*.inc.php),并存 放在admin目錄下,如執(zhí)行:admincp.php?action=dodo,相當(dāng)于執(zhí)行admin目錄下的dodo.inc.php文件
b) 前臺(tái)流程控制:前臺(tái)的流程控制比較簡(jiǎn)單:流程是自由的,如:首頁(yè):index.php會(huì)員注冊(cè):register.php;會(huì)員登錄:logging.php發(fā)貼程序:post.php會(huì)員信息:member.php論壇內(nèi)容:forumdisplay.php查看貼子:viewthread.php…大部分功能,此處不一一列出…
c) DT根目下的config.inc.php屬于整個(gè)DT系統(tǒng)的配置文件
四) Destoon!的數(shù)據(jù)處理過(guò)程
a) DT對(duì)mysql的數(shù)據(jù)庫(kù)操作處理全部封裝在dbstuff(db_mysql.class.php)類中
b) 所在的外部數(shù)據(jù)均通過(guò)“daddslashes()”初步過(guò)濾,然后再過(guò)濾,再根據(jù)需要處理
五) Destoon!的顯示控制(網(wǎng)站多樣式風(fēng)格輸出)
a) 顯示層就是大家通常所看到的網(wǎng)站風(fēng)格了。DT中每套風(fēng)絡(luò)分別在templates及images下對(duì)應(yīng)一個(gè)風(fēng)格文件的存放目錄。網(wǎng)站風(fēng)格的制作,請(qǐng)參閱詳細(xì)的DT風(fēng)格制作文檔b)DT網(wǎng)站風(fēng)格文件處理的原理:其實(shí)很簡(jiǎn)單,DT使用template.func.php中的parse_template()以PHP正則運(yùn)算把 htm模文件中的模板標(biāo)簽,轉(zhuǎn)換成了PHP代碼,并根據(jù)styleid保存在forumdata/templates下,這個(gè)有點(diǎn)像Smarty中的技術(shù)。
六) DT中的語(yǔ)言處理
a) DT前臺(tái)及后臺(tái)中、英語(yǔ)言的實(shí)現(xiàn),均是把語(yǔ)句定義成了語(yǔ)變量,然后在模板輸入,語(yǔ)句變量的賦值,均放在模板目錄中的*.lang.php文件中,DT在生成網(wǎng)站風(fēng)格時(shí)就加載了這相應(yīng)的語(yǔ)言包。
七) DT如何處理用戶信息(存取、計(jì)算、更新過(guò)程)
新手要做二次開(kāi)發(fā),都必須掌握這數(shù)組中,每個(gè)數(shù)組元素的意義。
a) DT的基本信息,如用戶信息,Session信息存在如下變量中:
a). $_DCACHEb). $_COOKIEc). $_DCOOKIEd). $_DSESSIONe). $_DPLUGINb) 可以通過(guò)print_r($GLOBALS),打印全部變量
八) DT中緩存處理機(jī)制
a) DT中緩存處理過(guò)程都放在“cache.func.php”中,DT的緩存處理比較簡(jiǎn)單,其原理是把一個(gè)數(shù)組轉(zhuǎn)換成了PHP代碼,并保存在緩存目錄下,大家可打開(kāi)緩存文件查看便知。
b) 使用方法:如果在新開(kāi)的功能中,需要緩存某部分?jǐn)?shù)據(jù),基本上就是:
1)定義并注冊(cè)緩存名字。
2)從數(shù)據(jù)讀取相應(yīng)的數(shù)據(jù)。
3)數(shù)據(jù)在寫入緩存前作相應(yīng)處理。
4)最后寫入緩存。
具體操作,可以看文件中的代碼,做相應(yīng)的修改即可
九) DT中模板處理機(jī)制
a) DT獨(dú)創(chuàng)的模板處理技術(shù),類似于Smarty中的模板處理,只是具體算法,過(guò)程不同,Smarty是一種重型模板引擎方案。其原理都是把模板中的變量轉(zhuǎn)換成相應(yīng)的PHP代碼,這個(gè)過(guò)程實(shí)際是模訪JAVA中的一次編譯,多處運(yùn)行。
十) DT中權(quán)限處理機(jī)制
a) 對(duì)于DT中前臺(tái)的每相action都有$Destoon_action定義,DT根據(jù)用戶所在的用戶組來(lái)判定用戶是否具有相應(yīng)操作$Destoon_action的權(quán)限。至于后臺(tái)的權(quán)限權(quán)驗(yàn)證,則更簡(jiǎn)單了,依據(jù)“admin==1”來(lái)確定的
十一) DT中如何實(shí)現(xiàn)URL靜態(tài)化
a) DT中的靜態(tài)有兩法,只要懂ReWrite規(guī)劃的朋友,一看就知。
十二) DT獨(dú)創(chuàng)的HTML編輯器
如何截取并使用,如果進(jìn)行Destoon!代和Html代碼的轉(zhuǎn)換
a)這也算是DT比較牛的一項(xiàng)技術(shù)了,在早期版中,因DT編輯器的不足,使得很多用戶放棄了DT。實(shí)現(xiàn)原理:通過(guò)JS把用的一些操作轉(zhuǎn)換成了DT的 bbcode代碼。這樣子提交了安全性,將帶有bbcode代碼的內(nèi)容存入數(shù)據(jù),在用戶打開(kāi)頁(yè)頁(yè)時(shí),又把bbcode代碼轉(zhuǎn)換成html代碼
一、初始化系統(tǒng)
包含系統(tǒng)根目錄下的common.inc.php即可初始化系統(tǒng)。
例如在站點(diǎn)根目錄下創(chuàng)建一個(gè)hello.php。
示例代碼:
<?php
require 'common.inc.php';
echo 'Hello World';
?>
二、編寫邏輯
系統(tǒng)初始化之后,就可以在php文件里編寫邏輯代碼,同時(shí)也可以調(diào)用系統(tǒng)內(nèi)置的變量、函數(shù)和類了。
示例代碼:
<?php
require 'common.inc.php';
echo DT_ROOT;//輸出站點(diǎn)的物理路徑
echo '<br/>';
echo DT_PATH;//輸出站點(diǎn)的首頁(yè)地址
echo '<br/>';
$r = $db->get_one("SELECT * FROM {$DT_PRE}category");//從分類表里查詢一條數(shù)據(jù)
print_r($r);//打印讀取的數(shù)據(jù)
$A = cache_read('area.php');//讀取系統(tǒng)的地區(qū)緩存
print_r($A);//打印讀取的數(shù)據(jù)
print_r($MODULE);//打印系統(tǒng)模塊數(shù)據(jù)
message('Hello World');//輸出一段提示信息
?>
三、應(yīng)用模板
所有輸出給瀏覽器的HTML均通過(guò)模板里的規(guī)則顯示。
使用方法:
include template('a', 'b');
參數(shù)a表示模版名稱
參數(shù)b表示模板存放的目錄,此參數(shù)可以不設(shè)置
假如模板目錄為default,那么:
template('a', 'b'); 代表 template/default/b/a.htm 模板文件
template('a'); 代表 template/default/a.htm 模板文件
示例代碼:
<?php
require 'common.inc.php';
template('hello');
?>
template/default/hello.htm 模板文件需要提前創(chuàng)建