一液南、destoon的目錄結(jié)構(gòu)及一些核心的文件
/admin 系統(tǒng)核心后臺(tái)管理
├ image 后臺(tái)風(fēng)格
├ template 后臺(tái)模板
/api 系統(tǒng)及第三方接口
├ kf 在線客服
├ map 電子地圖
├ oauth 一鍵登錄
├ pay 支付接口
├ stats 第三方統(tǒng)計(jì)
├ trade 擔(dān)保交易
├ ucenter UCenter
/file
├ backup 數(shù)據(jù)庫(kù)備份
├ cache 緩存
├ captcha 驗(yàn)證碼字體
├ chat 聊天記錄
├ config 配置
├ data 導(dǎo)數(shù)據(jù)導(dǎo)入
├ email 郵件列表
├ flash Flash文件
├ font 中文字體
├ image 公用圖片
├ ipdata IP數(shù)據(jù)庫(kù)
├ log 日志
├ md5 MD5鏡像
├ mobile 手機(jī)列表
├ script javascript
├ session SESSION
├ setting 配置數(shù)據(jù)
├ temp 臨時(shí)目錄
├ update 系統(tǒng)更新
├ upload 上傳文件
/include 核心類(lèi)庫(kù)
/install 安裝程序
/lang 語(yǔ)言包
/module 功能模塊
├ article 文章模塊
├article/admin 文章管理
├article/admin/template 文章管理模板
├article/common.inc.php 文章模塊初始化
├article/global.func.php 文章核心函數(shù)
├article/article.class.php 文章核心類(lèi)
├article/index.inc.php 文章首頁(yè)
├article/index.htm.php 靜態(tài)文章首頁(yè)
├article/list.inc.php 文章列表頁(yè)
├ article/list.htm.php 靜態(tài)文章列表頁(yè)
├article/show.inc.php 文章內(nèi)容頁(yè)
├article/show.htm.php 靜態(tài)文章內(nèi)容頁(yè)
├article/search.inc.php 文章搜索
├article/task.inc.php 文章計(jì)劃任務(wù)
/skin 風(fēng)格皮膚
├ default 默認(rèn)風(fēng)格
├default/image 圖片文件
├default/style.css CSS文件
/template 模板文件
├ default 默認(rèn)模板
├default/index.htm 首頁(yè)模板
/upgrade 系統(tǒng)升級(jí)
/admin.php 后臺(tái)入口
/common.inc.php 系統(tǒng)初始化
/config.inc.php 系統(tǒng)配置
/index.html 靜態(tài)首頁(yè)
/index.php 動(dòng)態(tài)首頁(yè)
/version.inc.php 版本控制
Destoon也算是mvc框架吧壳猜,舉個(gè)例子
根目錄下的文件夾
/company
里面的文件是MVC中的C,它控制對(duì)應(yīng)module/company
中的文件也就是我們說(shuō)的M,最后我們通過(guò)V也是就是tempalte/default/company
對(duì)應(yīng)的文件來(lái)顯示我們的界面滑凉,整個(gè)流程基本就是這樣的统扳。只要把這個(gè)流程弄清楚了,其他的就是寫(xiě)代碼編程序的問(wèn)題了畅姊。
二咒钟、主要的橫版模板及調(diào)用方法
1.全局標(biāo)簽
網(wǎng)站名稱(chē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備案號(hào):{if $DT[icpno]}<a
target="_blank">{$DT[icpno]}</a> ┊ {/if}
VIP會(huì)員名稱(chēng):{VIP}
真實(shí)貨幣名稱(chēng):{$DT[money_name]}
真實(shí)貨幣單位:{$DT[money_unit]}
虛擬積分名稱(chēng):{$DT[credit_name]}
虛擬積分單位:{$DT[credit_unit]}
Title(網(wǎng)站標(biāo)題):{$seo_title}
Meta Keywords(網(wǎng)頁(yè)關(guān)鍵詞):{$head_keywords}
Meta Description(網(wǎng)頁(yè)描述):{$head_description}
這些全局標(biāo)簽是隨時(shí)拿出來(lái)都可以用的,不僅是在php文件中若未,在htm文件中也都是可以拿來(lái)用的朱嘴,所以為了快速的、簡(jiǎn)潔的寫(xiě)代碼陨瘩,這些全局變量我們一定要熟識(shí)腕够。
2.連接地址
默認(rèn)各個(gè)模塊連接:
會(huì)員:{$MODULE[2][linkurl]}
供應(yīng):{$MODULE[5][linkurl]}
求購(gòu):{$MODULE[6][linkurl]}
行情:{$MODULE[7][linkurl]}
公司:{$MODULE[4][linkurl]}
展會(huì):{$MODULE[8][linkurl]}
資訊:{$MODULE[21][linkurl]}
招商:{$MODULE[22][linkurl]}
品牌:{$MODULE[13][linkurl]}
人才:{$MODULE[9][linkurl]}
知道:{$MODULE[10][linkurl]}
專(zhuān)題:{$MODULE[11][linkurl]}
圖庫(kù):{$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
管理買(mǎi)賣(mài)交易:{$MODULE[2][linkurl]}trade.php
完善企業(yè)資料:{$MODULE[2][linkurl]}edit.php?tab=2
注冊(cè):{$MOD[linkurl]}{$DT[file_register]}
登錄:{$MODULE[2][linkurl]}{$DT[file_login]}
找回密碼:{$MOD[linkurl]}send.php
VIP頁(yè)面:{$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')}
申請(qǐng)友情鏈接:{extendurl('link')}{rewrite('index.php?action=reg')}
留言本:{extendurl('guestbook')}
投票:{extendurl('vote')}
3.首頁(yè)調(diào)用
導(dǎo)航菜單:
<ul>
<li{if $moduleid<4} class="menuon"{/if}>
<a href="{DT_PATH}">
<span>首頁(yè)</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)用分類(lèi)模塊:
{php $mid = 5;}
{template 'catalog', 'chip'}
4.各個(gè)模塊數(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知識(shí)级乍,并對(duì)PHP+MySQL有初步的了解。
調(diào)用過(guò)程實(shí)際是按照調(diào)用條件從數(shù)據(jù)表讀取調(diào)用數(shù)量條數(shù)據(jù)帚湘,并依排序方式排序玫荣,最終通過(guò)標(biāo)簽?zāi)0宓牟季州敵鰯?shù)據(jù)。
函數(shù)原型:tag($parameter, $expires = 0)
,$parameter
表示傳遞給tag函數(shù)的字符串大诸,系統(tǒng)自動(dòng)將其轉(zhuǎn)換為多個(gè)變量 例如傳遞table=destoon&pagesize=10
捅厂,系統(tǒng)相當(dāng)于得到$table = ‘destoon’
;$pagesize = 10
资柔;
兩個(gè)變量$expires
表示緩存過(guò)期時(shí)間焙贷。
>0 :緩存$expires秒;
0 :系統(tǒng)默認(rèn)時(shí)間贿堰;
-1 :不緩存辙芍;
-2 :緩存SQL;
一般情況保持默認(rèn)即可羹与。
變量 $tags
以數(shù)組類(lèi)型保存標(biāo)簽調(diào)用的數(shù)據(jù)故硅,可通過(guò)loop語(yǔ)法遍歷顯示。
$pages
保存數(shù)據(jù)分頁(yè)代碼纵搁,僅在調(diào)用了分頁(yè)時(shí)有效吃衅。$path
模塊路徑。
常用字段:title
標(biāo)題腾誉;linkurl
鏈接徘层; catid
分類(lèi)ID;introduce
簡(jiǎn)介利职;addtime
添加時(shí)間趣效;
常用函數(shù):dsubstr($string, $length, $suffix = ”)
將字符串$string
截取為$length
長(zhǎng),尾部追加$suffix
(例如..)
set_style($string, $style = ”, $tag = ‘span’)
將字符串$string
置于$tag
HTML標(biāo)簽中并設(shè)置style為$style
linkurl($linkurl, $absurl =0)
將相對(duì)路徑$linkurl
修補(bǔ)為絕對(duì)路徑(防止鏈接錯(cuò)誤)
date($format, $timestamp)
將時(shí)間戳$timestamp
轉(zhuǎn)化為$format
(例如Y-m-d)格式標(biāo)簽
模板: 模板保存于./template/default/tag/
目錄;建議不要?jiǎng)h除或者修改自帶的模板眼耀,推薦在自帶模板基礎(chǔ)上新建模板并應(yīng)用英支。有時(shí)候難免會(huì)出現(xiàn)系統(tǒng)自帶模版不能滿(mǎn)足需求的情況,這時(shí)候你可以在此目錄下新建一個(gè)模版文件哮伟,然后按照自己的需求寫(xiě)出自己的模板。
destoon顯示地區(qū)
顯示地區(qū):
需要的函數(shù)是
include/module.func.php/get_mainarea($areaid, $area);
php頁(yè)面:$AREA=cache_read(‘a(chǎn)rea.php’);
//讀取緩存文件
靜態(tài)頁(yè)面調(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)用分頁(yè)
分頁(yè)標(biāo)簽
<!{tag(“moduleid=$moduleid&c=3$dtype&catid=$catid&pagesize=4&page=$page
&showpage=1&datetype=5&order=”.$MOD[order].”&template=list-sell”)}>
# 分頁(yè):
{if $showpage && $pages}
<div class=”pages”>{$pages}
</div>
{/if}
destoon調(diào)用分類(lèi)
$maincat = get_maincat(0, $CATEGORY);
get_maincat(0, $CATEGORY) //——在include/global_func.php 中
$childcat = get_maincat(0, $CATEGORY, 1);//— 調(diào)用超級(jí)欄目下的1級(jí)目錄
0 代表最最根目錄 1代表 level為1的目錄level 手動(dòng)設(shè)置 默認(rèn)都為1
如果0改為3 則為catid 為3 的目錄
小注意:
$CATEGORY= cache_read(‘category-’.$moduleid.’.php’);
此文件在模塊頁(yè)的common.inc.php頁(yè)面中
調(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頁(yè)面里必須有 $maincat
$MOD[linkurl] 是模塊也首頁(yè)地址 $v[linkurl]其下列表頁(yè) 加catid
標(biāo)簽調(diào)用
標(biāo)簽調(diào)用是根據(jù)調(diào)用條件(condition)從數(shù)據(jù)表(table)讀取調(diào)用數(shù)量(pagesize)條數(shù)據(jù)妄帘,并按排序方式(order)排序楞黄,最終通過(guò)標(biāo)簽?zāi)0宓牟季州敵鰯?shù)據(jù)。
可以看出抡驼,標(biāo)簽的工作分兩個(gè)部分鬼廓,一是讀取數(shù)據(jù),二是顯示數(shù)據(jù)致盟。
標(biāo)簽函數(shù)原型
標(biāo)簽函數(shù)保存于 include/tag.func.php
tag($parameter, $expires = 0)
$parameter
表示傳遞給tag函數(shù)的字符串碎税,系統(tǒng)自動(dòng)將其轉(zhuǎn)換為多個(gè)變量
例如傳遞 table=destoon&pagesize=10&hello=world
系統(tǒng)相當(dāng)于得到
$table = ‘destoon’; $pagesize = 10; $hello = ‘world’;
三個(gè)變量尤慰。
數(shù)據(jù)讀取過(guò)程
例如以下標(biāo)簽:
<! {tag(“table=sell&c=3&order=addtime desc&pagesize=10″)} ;>
會(huì)被轉(zhuǎn)換為如下的SQL語(yǔ)句:
SELECT *
FROM destoon_sell
WHERE status=3
ORDER BY addtime DESC
LIMIT 0,10
讀出的數(shù)據(jù)會(huì)保存在 $tags
數(shù)組里
數(shù)據(jù)顯示過(guò)程
1、通過(guò)標(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
模板來(lái)顯示數(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”);} >
此寫(xiě)法傳遞標(biāo)簽?zāi)0鍨閚ull霜医,并且直接返回?cái)?shù)據(jù)給$tags
數(shù)組,此時(shí)可以直接在模板里循環(huán)了
以下為一個(gè)完整的示例:
<! {php $tags=tag(“table=…&template=null”);} >
{loop $tags $t}
…
{/loop>
第一種寫(xiě)法一般用于多次調(diào)用的數(shù)據(jù)驳规,第二種寫(xiě)法一般用于只調(diào)用一次的數(shù)據(jù)肴敛。
常用參數(shù)及含義
moduleid
指模塊ID,可在后臺(tái)模塊管理里查詢(xún)吗购。對(duì)于直接調(diào)用模塊的數(shù)據(jù)值朋,設(shè)置正確的模塊ID后,將不需要傳遞table參數(shù)巩搏,系統(tǒng)會(huì)自動(dòng)獲取昨登。
例如傳遞moduleid=5,系統(tǒng)將識(shí)別為調(diào)用供應(yīng)信息贯底,自動(dòng)設(shè)置table參數(shù)為sell
table
指表名丰辣,可在后臺(tái)數(shù)據(jù)庫(kù)維護(hù)里查詢(xún)。對(duì)于Destoon系統(tǒng)表禽捆,不需要加表的前綴笙什;對(duì)于非Destoon系統(tǒng)表,需要填寫(xiě)完整的表名胚想,且傳遞prefix參數(shù)
例如對(duì)于Destoon系統(tǒng)表琐凭,傳遞table=sell,如果表前綴為destoon_浊服,系統(tǒng)將識(shí)別表名為 destoon_sell
對(duì)于非Destoon系統(tǒng)表统屈,傳遞table=tb_abc&prefix=或者table=abc&prefix=tb_,系統(tǒng)將識(shí)別表名為 tb_abc
fields
指查詢(xún)的字段牙躺,默認(rèn)為*愁憔。可以傳遞例如 fields=title,addtime孽拷,但是一般情況下無(wú)需傳遞吨掌,Destoon獨(dú)有的標(biāo)簽緩存機(jī)制會(huì)自動(dòng)緩存查詢(xún)結(jié)果,不必?fù)?dān)心效率問(wèn)題。
condition
指查詢(xún)的條件膜宋,如果不傳遞窿侈,則為1,代表任意條件的數(shù)據(jù)(此項(xiàng)需了解SQL語(yǔ)法)秋茫。Destoon所有模塊遵循統(tǒng)一標(biāo)準(zhǔn)開(kāi)發(fā)史简,所以很多條件是通用的。
例如 status=3表示正常通過(guò)的信息学辱、status=3 and level=1表示級(jí)別為1的信息乘瓤、status=3 and thumb<>”表示有標(biāo)題圖片的信息等。
order
指數(shù)據(jù)的排序方法(此項(xiàng)需了解SQL語(yǔ)法)策泣。
例如order=addtime desc表示按添加時(shí)間降序排列衙傀、order=itemid desc表示按itemid降序排列、order=rand()表示隨機(jī)數(shù)據(jù)等萨咕。
pagesize
指調(diào)用數(shù)據(jù)的數(shù)量统抬,如果不傳遞,默認(rèn)為10危队。
template
指指定的標(biāo)簽?zāi)0宕辖ǎ绻粋鬟f,默認(rèn)為list茫陆,位于模板目錄/tag/list.htm金麸,如果傳遞為null,表示不應(yīng)用標(biāo)簽?zāi)0宀局选⒁?jiàn)上述數(shù)據(jù)顯示過(guò)程挥下。
其他常見(jiàn)用法舉例
控制標(biāo)題長(zhǎng)度
在標(biāo)簽里傳遞length參數(shù),例如&length=20表示20個(gè)字符長(zhǎng)度(GBK一個(gè)漢字占2個(gè)字符桨醋,UTF-8一個(gè)漢字占3個(gè)字符)棚瘟,一般情況建議用css隱藏多余字符(定義height和overflow:hidden)
傳遞length參數(shù),系統(tǒng)僅對(duì)title字段自動(dòng)截取喜最,如果需要截取其他字段偎蘸,可用dsubstr函數(shù)
例如 {dsubstr($t[company], 20, ‘…’)} 表示截取company字段為20個(gè)字符,截取后瞬内,結(jié)尾追加…
設(shè)置日期顯示格式
可以在標(biāo)簽里傳遞datetype
參數(shù):
1 表示年迷雪;
2 表示月-日;
3 表示年-月-日遂鹊;
4 表示月-日 時(shí):分振乏;
5 表示年-月-日 時(shí):分;
6 表示年-月-日 時(shí):分:秒
也可以在模板里直接使用date
函數(shù)秉扑,例如{date(‘Y-m-d’, $t[addtime])}
表示將時(shí)間轉(zhuǎn)換為 年-月-日 格式
調(diào)用某一分類(lèi)的信息
在標(biāo)簽里傳遞catid參數(shù),例如&catid=5表示調(diào)用分類(lèi)ID為5的所有信息。
如果調(diào)用多個(gè)分類(lèi)舟陆,用逗號(hào)分隔分類(lèi)ID误澳,例如
&catid=5,6,7表示調(diào)用分類(lèi)ID為5、6秦躯、7的所有信息忆谓。
分類(lèi)調(diào)用默認(rèn)包含子分類(lèi)的信息,如果不需要包含子分類(lèi)踱承,可設(shè)置&child=0參數(shù)倡缠。
例如&catid=5&child=0表示只調(diào)用分類(lèi)ID為5的信息,不包括子分類(lèi)的信息茎活。
調(diào)用某一地區(qū)的信息
調(diào)用地區(qū)信息和上述調(diào)用分類(lèi)信息的方法完全相同昙沦,將其中的catid換為areaid即可。
顯示信息所在分類(lèi)
<a
href=”{$MODULE[$moduleid][linkurl]}{$CATEGORY[$t[catid]][linkurl]}”>{$CATEGORY[$t[catid]][catname]}</a>
控制列數(shù)
此項(xiàng)常用于圖片的布局载荔,可使用cols參數(shù)盾饮。
例如調(diào)用12張圖片,一行顯示4個(gè)懒熙,共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徘钥,可參考以上兩個(gè)模板的寫(xiě)法
上述效果可以也可以通過(guò)CSS實(shí)現(xiàn),無(wú)需使用表格肢娘,請(qǐng)自行書(shū)寫(xiě)
顯示文章的簡(jiǎn)介
使用{$t[introduce]}變量呈础,如果要截取字?jǐn)?shù),例如80字符蔬浙,可使用{dsubstr($t[introduce], 80, ‘…’)}
標(biāo)簽看似復(fù)雜難懂猪落,實(shí)際上在理解各個(gè)參數(shù)的含義和調(diào)用流程后,您會(huì)了解到標(biāo)簽實(shí)際簡(jiǎn)單自由畴博、靈活易用笨忌、功能強(qiáng)大。
默認(rèn)模板里已提供了大量的調(diào)用范例和標(biāo)簽?zāi)0寰悴。梢栽趯W(xué)習(xí)中參閱和調(diào)試官疲。
三、第三方支付接口文件/api
Destoon里面有一個(gè)很重要的板塊亮隙,就是商城板塊途凫。有商城就會(huì)有交易,而有交易就必須要有一個(gè)第三方支付平臺(tái)溢吻,比如支付寶维费、財(cái)付通果元、網(wǎng)銀等等平臺(tái)。我們就以支付寶為例犀盟,你首先需要向支付寶申請(qǐng)一個(gè)接口而晒,關(guān)于怎么申請(qǐng)支付寶接口百度文庫(kù)里有一篇文章寫(xiě)得很清楚點(diǎn)這里看文章。有了支付寶接口我們就可以在我們的網(wǎng)站后臺(tái)設(shè)置了阅畴。在后臺(tái)會(huì)員管理/模塊設(shè)置里面選擇支付寶倡怎。
有一個(gè)文檔專(zhuān)門(mén)講在線支付配置的可以去看看點(diǎn)這里。