
一、destoon的目錄結(jié)構(gòu)及一些核心的文件
/admin 系統(tǒng)核心后臺管理
├ image 后臺風(fēng)格
├ template 后臺模板
/api 系統(tǒng)及第三方接口
├ kf 在線客服
├ map 電子地圖
├ oauth 一鍵登錄
├ pay 支付接口
├ stats 第三方統(tǒng)計
├ trade 擔(dān)保交易
├ ucenter UCenter
/file
├ backup 數(shù)據(jù)庫備份
├ cache 緩存
├ captcha 驗證碼字體
├ chat 聊天記錄
├ config 配置
├ data 導(dǎo)數(shù)據(jù)導(dǎo)入
├ email 郵件列表
├ flash Flash文件
├ font 中文字體
├ image 公用圖片
├ ipdata IP數(shù)據(jù)庫
├ log 日志
├ md5 MD5鏡像
├ mobile 手機(jī)列表
├ script javascript
├ session SESSION
├ setting 配置數(shù)據(jù)
├ temp 臨時目錄
├ update 系統(tǒng)更新
├ upload 上傳文件
/include 核心類庫
/install 安裝程序
/lang 語言包
/module 功能模塊
├ article 文章模塊
├article/admin 文章管理
├article/admin/template 文章管理模板
├article/common.inc.php 文章模塊初始化
├article/global.func.php 文章核心函數(shù)
├article/article.class.php 文章核心類
├article/index.inc.php 文章首頁
├article/index.htm.php 靜態(tài)文章首頁
├article/list.inc.php 文章列表頁
├ article/list.htm.php 靜態(tài)文章列表頁
├article/show.inc.php 文章內(nèi)容頁
├article/show.htm.php 靜態(tài)文章內(nèi)容頁
├article/search.inc.php 文章搜索
├article/task.inc.php 文章計劃任務(wù)
/skin 風(fēng)格皮膚
├ default 默認(rèn)風(fēng)格
├default/image 圖片文件
├default/style.css CSS文件
/template 模板文件
├ default 默認(rèn)模板
├default/index.htm 首頁模板
/upgrade 系統(tǒng)升級
/admin.php 后臺入口
/common.inc.php 系統(tǒng)初始化
/config.inc.php 系統(tǒng)配置
/index.html 靜態(tài)首頁
/index.php 動態(tài)首頁
/version.inc.php 版本控制
Destoon也算是mvc框架吧,舉個例子
根目錄下的文件夾
/company里面的文件是MVC中的C,它控制對應(yīng)module/company中的文件也就是我們說的M,最后我們通過V也是就是tempalte/default/company對應(yīng)的文件來顯示我們的界面,整個流程基本就是這樣的。只要把這個流程弄清楚了,其他的就是寫代碼編程序的問題了。
二、主要的橫版模板及調(diào)用方法
1.全局標(biāo)簽
網(wǎng)站名稱:{$DT[sitename]}
網(wǎng)站地址:{DT_PATH}
網(wǎng)站LOGO:{if$MODULE[$moduleid][logo]}{DT_SKIN}image/logo_{$moduleid}.gif
{elseif $DT[logo]}{$DT[logo]}{else}{DT_SKIN}image/logo.gif{/if}
版權(quán)信息:{$DT[copyright]}
風(fēng)格路徑:{DT_PATH}
客服電話:{$DT[telephone]}
ICP備案號:{if $DT[icpno]}<a
target="_blank">{$DT[icpno]}</a> ┊ {/if}
VIP會員名稱:{VIP}
真實貨幣名稱:{$DT[money_name]}
真實貨幣單位:{$DT[money_unit]}
虛擬積分名稱:{$DT[credit_name]}
虛擬積分單位:{$DT[credit_unit]}
Title(網(wǎng)站標(biāo)題):{$seo_title}
Meta Keywords(網(wǎng)頁關(guān)鍵詞):{$head_keywords}
Meta Description(網(wǎng)頁描述):{$head_description}
這些全局標(biāo)簽是隨時拿出來都可以用的,不僅是在php文件中,在htm文件中也都是可以拿來用的,所以為了快速的、簡潔的寫代碼,這些全局變量我們一定要熟識。
2.連接地址
默認(rèn)各個模塊連接:
會員:{$MODULE[2][linkurl]}
供應(yīng):{$MODULE[5][linkurl]}
求購:{$MODULE[6][linkurl]}
行情:{$MODULE[7][linkurl]}
公司:{$MODULE[4][linkurl]}
展會:{$MODULE[8][linkurl]}
資訊:{$MODULE[21][linkurl]}
招商:{$MODULE[22][linkurl]}
品牌:{$MODULE[13][linkurl]}
人才:{$MODULE[9][linkurl]}
知道:{$MODULE[10][linkurl]}
專題:{$MODULE[11][linkurl]}
圖庫:{$MODULE[12][linkurl]}
視頻:{$MODULE[14][linkurl]}
下載:{$MODULE[15][linkurl]}
發(fā)布信息:{$MODULE[2][linkurl]}{$DT[file_my]}
企業(yè)商鋪:{$MODULE[2][linkurl]}home.php
查看站內(nèi)信:{$MODULE[2][linkurl]}message.php
管理買賣交易:{$MODULE[2][linkurl]}trade.php
完善企業(yè)資料:{$MODULE[2][linkurl]}edit.php?tab=2
注冊:{$MOD[linkurl]}{$DT[file_register]}
登錄:{$MODULE[2][linkurl]}{$DT[file_login]}
找回密碼:{$MOD[linkurl]}send.php
VIP頁面:{$MODULE[2][linkurl]}grade.php
WAP瀏覽:{if extend_setting('wap_enable')} <a href="{extendurl('wap')}">WAP瀏覽</a>{/if}
RSS訂閱:{if extend_setting('feed_enable')} | <a href="{extendurl('feed')}">RSS訂閱</a>{/if}
行情速遞:{$MODULE[7][linkurl]}{rewrite('price.php?product=all')}
企業(yè)新聞:{$MODULE[4][linkurl]}{rewrite('news.php?more=1')}
公告:{extendurl('announce')}
推廣:{extendurl('spread')}
廣告:{extendurl('ad')}
友情鏈接:{extendurl('link')}
申請友情鏈接:{extendurl('link')}{rewrite('index.php?action=reg')}
留言本:{extendurl('guestbook')}
投票:{extendurl('vote')}
3.首頁調(diào)用
導(dǎo)航菜單:
<ul>
<li{if $moduleid<4} class="menuon"{/if}>
<a href="{DT_PATH}">
<span>首頁</span>
</a>
</li>
{loop $MODULE $m}
{if $m[ismenu]}
<li{if $m[moduleid]==$moduleid} class="menuon"{/if}>
<a href="{$m[linkurl]}"{if $m[isblank]} target="_blank"{/if}>
<span{if $m[style]} style="color:{$m[style]};"{/if}>
{$m[name]}
</span>
</a>
</li>
{/if}
{/loop}
</ul>
調(diào)用登錄模塊:
{if $DT[page_login]}
{template 'user', 'chip'}
{/if}
調(diào)用分類模塊:
{php $mid = 5;}
{template 'catalog', 'chip'}
4.各個模塊數(shù)據(jù)的調(diào)用
供應(yīng):
最新供應(yīng)信息:
1.<!--{tag("moduleid=5&condition=status=3
&length=34&condition=status=3&pagesize=5
&order=addtime desc&template=list-trade")}-->
2.<!--{php $tags=tag("moduleid=5&condition=status=3
&length=34&condition=status=3&pagesize=5
&order=addtime desc&template=null");}-->
{loop $tags $k $t}
<li>
<span class="f_r">[{area_pos($t[areaid], '/', 1)}]
</span>
<a href="{$t[linkurl]}" target="_blank" title="{$t[alt]}">{$t[title]}
</a>
</li>
{/loop}
標(biāo)簽調(diào)用理論上需要網(wǎng)站管理人員有一定的HTML+CSS知識,并對PHP+MySQL有初步的了解。
調(diào)用過程實際是按照調(diào)用條件從數(shù)據(jù)表讀取調(diào)用數(shù)量條數(shù)據(jù),并依排序方式排序,最終通過標(biāo)簽?zāi)0宓牟季州敵鰯?shù)據(jù)。
函數(shù)原型:tag($parameter, $expires = 0),$parameter表示傳遞給tag函數(shù)的字符串,系統(tǒng)自動將其轉(zhuǎn)換為多個變量 例如傳遞table=destoon&pagesize=10,系統(tǒng)相當(dāng)于得到$table = ‘destoon’;$pagesize = 10;
兩個變量$expires表示緩存過期時間。
>0 :緩存$expires秒;
0 :系統(tǒng)默認(rèn)時間;
-1 :不緩存;
-2 :緩存SQL;
一般情況保持默認(rèn)即可。
變量 $tags 以數(shù)組類型保存標(biāo)簽調(diào)用的數(shù)據(jù),可通過loop語法遍歷顯示。
$pages 保存數(shù)據(jù)分頁代碼,僅在調(diào)用了分頁時有效。$path 模塊路徑。
常用字段:title 標(biāo)題;linkurl 鏈接; catid 分類ID;introduce 簡介;addtime 添加時間;
常用函數(shù):dsubstr($string, $length, $suffix = ”)將字符串$string截取為$length長,尾部追加$suffix(例如..)
set_style($string, $style = ”, $tag = ‘span’) 將字符串$string置于$tagHTML標(biāo)簽中并設(shè)置style為$style
linkurl($linkurl, $absurl =0)將相對路徑$linkurl修補(bǔ)為絕對路徑(防止鏈接錯誤)
date($format, $timestamp)將時間戳$timestamp轉(zhuǎn)化為$format(例如Y-m-d)格式標(biāo)簽
模板: 模板保存于./template/default/tag/目錄;建議不要刪除或者修改自帶的模板,推薦在自帶模板基礎(chǔ)上新建模板并應(yīng)用。有時候難免會出現(xiàn)系統(tǒng)自帶模版不能滿足需求的情況,這時候你可以在此目錄下新建一個模版文件,然后按照自己的需求寫出自己的模板。
destoon顯示地區(qū)
顯示地區(qū):
需要的函數(shù)是
include/module.func.php/get_mainarea($areaid, $area);
php頁面:$AREA=cache_read(‘a(chǎn)rea.php’);//讀取緩存文件
靜態(tài)頁面調(diào)用:
<table width=”100%” cellpadding=”3″>
{php $mainarea = get_mainarea(0, $AREA)}
{loop $mainarea $k $v}
{if $k%2==0}<tr>{/if}
<td>
<a href=”{$MOD[linkurl]}
{rewrite(‘search.php?areaid=’.$v['areaid'].’&typeid=’.$typeid)}”>{$v[areaname]}
</a>
</td>
{if $k%2==1}</tr>{/if}
{/loop}
</table>
destoon調(diào)用分頁
分頁標(biāo)簽
<!{tag(“moduleid=$moduleid&c=3$dtype&catid=$catid&pagesize=4&page=$page
&showpage=1&datetype=5&order=”.$MOD[order].”&template=list-sell”)}>
# 分頁:
{if $showpage && $pages}
<div class=”pages”>{$pages}
</div>
{/if}
destoon調(diào)用分類
$maincat = get_maincat(0, $CATEGORY);
get_maincat(0, $CATEGORY) //——在include/global_func.php 中
$childcat = get_maincat(0, $CATEGORY, 1);//— 調(diào)用超級欄目下的1級目錄
0 代表最最根目錄 1代表 level為1的目錄level 手動設(shè)置 默認(rèn)都為1
如果0改為3 則為catid 為3 的目錄
小注意:
$CATEGORY= cache_read(‘category-’.$moduleid.’.php’);
此文件在模塊頁的common.inc.php頁面中
調(diào)用
{loop $maincat $k $v}
{if $k%$DT[page_subcat]==0}<tr>{/if}
<td>
<a
href=”{$MOD[linkurl]}{$v[linkurl]}”>{set_style($v[catname],$v[style])}</a>
<span>({$ITEMS[$v[catid]]})</span>
</td>
{if $k%$DT[page_subcat]==($DT[page_subcat]-1)}</tr>{/if}
{/loop}
注意:
在其模塊 module 文件夾下的 php頁面里必須有 $maincat
$MOD[linkurl] 是模塊也首頁地址 $v[linkurl]其下列表頁 加catid
標(biāo)簽調(diào)用
標(biāo)簽調(diào)用是根據(jù)調(diào)用條件(condition)從數(shù)據(jù)表(table)讀取調(diào)用數(shù)量(pagesize)條數(shù)據(jù),并按排序方式(order)排序,最終通過標(biāo)簽?zāi)0宓牟季州敵鰯?shù)據(jù)。
可以看出,標(biāo)簽的工作分兩個部分,一是讀取數(shù)據(jù),二是顯示數(shù)據(jù)。
標(biāo)簽函數(shù)原型
標(biāo)簽函數(shù)保存于 include/tag.func.php
tag($parameter, $expires = 0)
$parameter 表示傳遞給tag函數(shù)的字符串,系統(tǒng)自動將其轉(zhuǎn)換為多個變量
例如傳遞 table=destoon&pagesize=10&hello=world
系統(tǒng)相當(dāng)于得到
$table = ‘destoon’; $pagesize = 10; $hello = ‘world’;
三個變量。
數(shù)據(jù)讀取過程
例如以下標(biāo)簽:
<! {tag(“table=sell&c=3&order=addtime desc&pagesize=10″)} ;>
會被轉(zhuǎn)換為如下的SQL語句:
SELECT *
FROM destoon_sell
WHERE status=3
ORDER BY addtime DESC
LIMIT 0,10
讀出的數(shù)據(jù)會保存在 $tags 數(shù)組里
數(shù)據(jù)顯示過程
1、通過標(biāo)簽?zāi)0屣@示
傳遞&template=abc給標(biāo)簽函數(shù),例如:
<! {tag(“table=…&template=abc”)} >
默認(rèn)的標(biāo)簽?zāi)0灞4嬖谀0迥夸?tag/目錄里,例如&template=abc將調(diào)用模板目錄/tag/abc.htm模板來顯示數(shù)據(jù),如果標(biāo)簽?zāi)0宸庞谄渌夸洠?code>def,則傳遞&dir=def&template=abc,系統(tǒng)將調(diào)用模板目錄/def/abc.htm模板
2、直接在模板里循環(huán)數(shù)據(jù)
<! {php $tags=tag(“table=…&template=null”);} >
此寫法傳遞標(biāo)簽?zāi)0鍨閚ull,并且直接返回數(shù)據(jù)給$tags數(shù)組,此時可以直接在模板里循環(huán)了
以下為一個完整的示例:
<! {php $tags=tag(“table=…&template=null”);} >
{loop $tags $t}
…
{/loop>
第一種寫法一般用于多次調(diào)用的數(shù)據(jù),第二種寫法一般用于只調(diào)用一次的數(shù)據(jù)。
常用參數(shù)及含義
moduleid指模塊ID,可在后臺模塊管理里查詢。對于直接調(diào)用模塊的數(shù)據(jù),設(shè)置正確的模塊ID后,將不需要傳遞table參數(shù),系統(tǒng)會自動獲取。
例如傳遞moduleid=5,系統(tǒng)將識別為調(diào)用供應(yīng)信息,自動設(shè)置table參數(shù)為sell
table指表名,可在后臺數(shù)據(jù)庫維護(hù)里查詢。對于Destoon系統(tǒng)表,不需要加表的前綴;對于非Destoon系統(tǒng)表,需要填寫完整的表名,且傳遞prefix參數(shù)
例如對于Destoon系統(tǒng)表,傳遞table=sell,如果表前綴為destoon_,系統(tǒng)將識別表名為 destoon_sell
對于非Destoon系統(tǒng)表,傳遞table=tb_abc&prefix=或者table=abc&prefix=tb_,系統(tǒng)將識別表名為 tb_abc
fields指查詢的字段,默認(rèn)為*。可以傳遞例如 fields=title,addtime,但是一般情況下無需傳遞,Destoon獨(dú)有的標(biāo)簽緩存機(jī)制會自動緩存查詢結(jié)果,不必?fù)?dān)心效率問題。
condition指查詢的條件,如果不傳遞,則為1,代表任意條件的數(shù)據(jù)(此項需了解SQL語法)。Destoon所有模塊遵循統(tǒng)一標(biāo)準(zhǔn)開發(fā),所以很多條件是通用的。
例如 status=3表示正常通過的信息、status=3 and level=1表示級別為1的信息、status=3 and thumb<>”表示有標(biāo)題圖片的信息等。
order指數(shù)據(jù)的排序方法(此項需了解SQL語法)。
例如order=addtime desc表示按添加時間降序排列、order=itemid desc表示按itemid降序排列、order=rand()表示隨機(jī)數(shù)據(jù)等。
pagesize指調(diào)用數(shù)據(jù)的數(shù)量,如果不傳遞,默認(rèn)為10。
template指指定的標(biāo)簽?zāi)0?,如果不傳遞,默認(rèn)為list,位于模板目錄/tag/list.htm,如果傳遞為null,表示不應(yīng)用標(biāo)簽?zāi)0濉⒁娚鲜鰯?shù)據(jù)顯示過程。
其他常見用法舉例
控制標(biāo)題長度
在標(biāo)簽里傳遞length參數(shù),例如&length=20表示20個字符長度(GBK一個漢字占2個字符,UTF-8一個漢字占3個字符),一般情況建議用css隱藏多余字符(定義height和overflow:hidden)
傳遞length參數(shù),系統(tǒng)僅對title字段自動截取,如果需要截取其他字段,可用dsubstr函數(shù)
例如 {dsubstr($t[company], 20, ‘…’)} 表示截取company字段為20個字符,截取后,結(jié)尾追加…
設(shè)置日期顯示格式
可以在標(biāo)簽里傳遞datetype參數(shù):
1 表示年;
2 表示月-日;
3 表示年-月-日;
4 表示月-日 時:分;
5 表示年-月-日 時:分;
6 表示年-月-日 時:分:秒
也可以在模板里直接使用date函數(shù),例如{date(‘Y-m-d’, $t[addtime])}
表示將時間轉(zhuǎn)換為 年-月-日 格式
調(diào)用某一分類的信息
在標(biāo)簽里傳遞catid參數(shù),例如&catid=5表示調(diào)用分類ID為5的所有信息。
如果調(diào)用多個分類,用逗號分隔分類ID,例如
&catid=5,6,7表示調(diào)用分類ID為5、6、7的所有信息。
分類調(diào)用默認(rèn)包含子分類的信息,如果不需要包含子分類,可設(shè)置&child=0參數(shù)。
例如&catid=5&child=0表示只調(diào)用分類ID為5的信息,不包括子分類的信息。
調(diào)用某一地區(qū)的信息
調(diào)用地區(qū)信息和上述調(diào)用分類信息的方法完全相同,將其中的catid換為areaid即可。
顯示信息所在分類
<a
href=”{$MODULE[$moduleid][linkurl]}{$CATEGORY[$t[catid]][linkurl]}”>{$CATEGORY[$t[catid]][catname]}</a>
控制列數(shù)
此項常用于圖片的布局,可使用cols參數(shù)。
例如調(diào)用12張圖片,一行顯示4個,共3行,則傳遞&pagesize=12&cols=4
支持cols參數(shù)的標(biāo)簽?zāi)0逑辴humb-table.htm和list-table.htm
其中,thumb-table.htm顯示圖片列表,list-table.htm顯示文字列表
如果新建支持cols的標(biāo)簽?zāi)0寤蛑苯友h(huán)$tags,可參考以上兩個模板的寫法
上述效果可以也可以通過CSS實現(xiàn),無需使用表格,請自行書寫
顯示文章的簡介
使用{$t[introduce]}變量,如果要截取字?jǐn)?shù),例如80字符,可使用{dsubstr($t[introduce], 80, ‘…’)}
標(biāo)簽看似復(fù)雜難懂,實際上在理解各個參數(shù)的含義和調(diào)用流程后,您會了解到標(biāo)簽實際簡單自由、靈活易用、功能強(qiáng)大。
默認(rèn)模板里已提供了大量的調(diào)用范例和標(biāo)簽?zāi)0澹梢栽趯W(xué)習(xí)中參閱和調(diào)試。
三、第三方支付接口文件/api
Destoon里面有一個很重要的板塊,就是商城板塊。有商城就會有交易,而有交易就必須要有一個第三方支付平臺,比如支付寶、財付通、網(wǎng)銀等等平臺。我們就以支付寶為例,你首先需要向支付寶申請一個接口,關(guān)于怎么申請支付寶接口百度文庫里有一篇文章寫得很清楚點(diǎn)這里看文章。有了支付寶接口我們就可以在我們的網(wǎng)站后臺設(shè)置了。在后臺會員管理/模塊設(shè)置里面選擇支付寶。
有一個文檔專門講在線支付配置的可以去看看點(diǎn)這里。