destoon二次開發模板及調用語法匯總

一、destoon的目錄結構及一些核心的文件

/admin 系統核心后臺管理 
├ image         后臺風格 
├ template      后臺模板 

/api 系統及第三方接口
├ kf            在線客服 
├ map           電子地圖 
├ oauth         一鍵登錄 
├ pay           支付接口 
├ stats         第三方統計 
├ trade         擔保交易 
├ ucenter       UCenter 

/file
├ backup     數據庫備份 
├ cache      緩存 
├ captcha    驗證碼字體 
├ chat       聊天記錄 
├ config     配置 
├ data       導數據導入 
├ email      郵件列表 
├ flash      Flash文件 
├ font       中文字體 
├ image      公用圖片 
├ ipdata     IP數據庫 
├ log        日志 
├ md5        MD5鏡像 
├ mobile     手機列表 
├ script     javascript 
├ session    SESSION 
├ setting    配置數據 
├ temp       臨時目錄 
├ update     系統更新 
├ upload     上傳文件 

/include   核心類庫

/install   安裝程序

/lang      語言包

/module    功能模塊
├ article                  文章模塊 
├article/admin             文章管理 
├article/admin/template    文章管理模板
├article/common.inc.php    文章模塊初始化
├article/global.func.php   文章核心函數
├article/article.class.php 文章核心類
├article/index.inc.php     文章首頁
├article/index.htm.php     靜態文章首頁
├article/list.inc.php      文章列表頁
├ article/list.htm.php     靜態文章列表頁 
├article/show.inc.php      文章內容頁
├article/show.htm.php      靜態文章內容頁
├article/search.inc.php    文章搜索
├article/task.inc.php      文章計劃任務

/skin     風格皮膚
├ default          默認風格 
├default/image     圖片文件 
├default/style.css CSS文件

/template 模板文件
├ default          默認模板 
├default/index.htm 首頁模板

/upgrade         系統升級

/admin.php       后臺入口

/common.inc.php  系統初始化 

/config.inc.php  系統配置 

/index.html      靜態首頁

/index.php       動態首頁

/version.inc.php 版本控制

Destoon也算是mvc框架吧,舉個例子

根目錄下的文件夾/company里面的文件是MVC中的C,它控制對應module/company中的文件也就是我們說的M,最后我們通過V也是就是tempalte/default/company對應的文件來顯示我們的界面,整個流程基本就是這樣的。只要把這個流程弄清楚了,其他的就是寫代碼編程序的問題了。

二、主要的橫版模板及調用方法

1.全局標簽

網站名稱:{$DT[sitename]}
網站地址:{DT_PATH}
網站LOGO:{if$MODULE[$moduleid][logo]}{DT_SKIN}image/logo_{$moduleid}.gif
          {elseif $DT[logo]}{$DT[logo]}{else}{DT_SKIN}image/logo.gif{/if}
版權信息:{$DT[copyright]}
風格路徑:{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(網站標題):{$seo_title}
Meta Keywords(網頁關鍵詞):{$head_keywords}
Meta Description(網頁描述):{$head_description}

這些全局標簽是隨時拿出來都可以用的,不僅是在php文件中,在htm文件中也都是可以拿來用的,所以為了快速的、簡潔的寫代碼,這些全局變量我們一定要熟識。

2.連接地址

默認各個模塊連接:

會員:{$MODULE[2][linkurl]}   
供應:{$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]}

發布信息:{$MODULE[2][linkurl]}{$DT[file_my]}
企業商鋪:{$MODULE[2][linkurl]}home.php
查看站內信:{$MODULE[2][linkurl]}message.php
管理買賣交易:{$MODULE[2][linkurl]}trade.php
完善企業資料:{$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')}
企業新聞:{$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.首頁調用

導航菜單:

<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>

調用登錄模塊:

  {if $DT[page_login]}
  {template 'user', 'chip'}
  {/if}

調用分類模塊:

   {php $mid = 5;}
   {template 'catalog', 'chip'}

4.各個模塊數據的調用

供應:
最新供應信息:

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}

標簽調用理論上需要網站管理人員有一定的HTML+CSS知識,并對PHP+MySQL有初步的了解。
調用過程實際是按照調用條件從數據表讀取調用數量條數據,并依排序方式排序,最終通過標簽模板的布局輸出數據。
函數原型:tag($parameter, $expires = 0) ,$parameter 表示傳遞給tag函數的字符串,系統自動將其轉換為多個變量 例如傳遞 table=destoon&pagesize=10,系統相當于得到$table = ‘destoon’$pagesize = 10
兩個變量 $expires 表示緩存過期時間。
>0 :緩存$expires秒;
0 :系統默認時間;
-1 :不緩存;
-2 :緩存SQL;
一般情況保持默認即可。
變量 $tags 以數組類型保存標簽調用的數據,可通過loop語法遍歷顯示。
$pages 保存數據分頁代碼,僅在調用了分頁時有效。$path 模塊路徑。
常用字段:title 標題;linkurl 鏈接; catid 分類ID;introduce 簡介;addtime 添加時間;
常用函數:dsubstr($string, $length, $suffix = ”)將字符串$string截取為$length長,尾部追加$suffix(例如..)
set_style($string, $style = ”, $tag = ‘span’) 將字符串$string置于$tagHTML標簽中并設置style為$style
linkurl($linkurl, $absurl =0)將相對路徑$linkurl修補為絕對路徑(防止鏈接錯誤)
date($format, $timestamp)將時間戳$timestamp轉化為$format(例如Y-m-d)格式標簽

模板: 模板保存于./template/default/tag/目錄;建議不要刪除或者修改自帶的模板,推薦在自帶模板基礎上新建模板并應用。有時候難免會出現系統自帶模版不能滿足需求的情況,這時候你可以在此目錄下新建一個模版文件,然后按照自己的需求寫出自己的模板。

destoon顯示地區

顯示地區:
需要的函數是
include/module.func.php/get_mainarea($areaid, $area);
php頁面:$AREA=cache_read(‘area.php’);//讀取緩存文件
靜態頁面調用:

<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調用分頁

分頁標簽

<!{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調用分類
$maincat = get_maincat(0, $CATEGORY);

get_maincat(0, $CATEGORY)  //——在include/global_func.php 中

$childcat = get_maincat(0, $CATEGORY, 1);//— 調用超級欄目下的1級目錄

0 代表最最根目錄 1代表 level為1的目錄level 手動設置 默認都為1
如果0改為3 則為catid 為3 的目錄

小注意:
$CATEGORY= cache_read(‘category-’.$moduleid.’.php’);
此文件在模塊頁的common.inc.php頁面中

調用
{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
標簽調用

標簽調用是根據調用條件(condition)從數據表(table)讀取調用數量(pagesize)條數據,并按排序方式(order)排序,最終通過標簽模板的布局輸出數據。
可以看出,標簽的工作分兩個部分,一是讀取數據,二是顯示數據。
標簽函數原型
標簽函數保存于 include/tag.func.php
tag($parameter, $expires = 0)
$parameter 表示傳遞給tag函數的字符串,系統自動將其轉換為多個變量
例如傳遞 table=destoon&pagesize=10&hello=world
系統相當于得到
$table = ‘destoon’; $pagesize = 10; $hello = ‘world’;
三個變量。

數據讀取過程

例如以下標簽:

<! {tag(“table=sell&c=3&order=addtime desc&pagesize=10″)} ;>

會被轉換為如下的SQL語句:

SELECT *
FROM destoon_sell
WHERE status=3
ORDER BY addtime DESC
LIMIT 0,10

讀出的數據會保存在 $tags 數組里

數據顯示過程

1、通過標簽模板顯示
傳遞&template=abc給標簽函數,例如:
<! {tag(“table=…&template=abc”)} >
默認的標簽模板保存在模板目錄/tag/目錄里,例如&template=abc將調用模板目錄/tag/abc.htm模板來顯示數據,如果標簽模板放于其他目錄,例如def,則傳遞&dir=def&template=abc,系統將調用模板目錄/def/abc.htm模板
2、直接在模板里循環數據
<! {php $tags=tag(“table=…&template=null”);} >
此寫法傳遞標簽模板為null,并且直接返回數據給$tags數組,此時可以直接在模板里循環了
以下為一個完整的示例:

<! {php $tags=tag(“table=…&template=null”);} >
{loop $tags $t}
…
{/loop>

第一種寫法一般用于多次調用的數據,第二種寫法一般用于只調用一次的數據。

常用參數及含義
moduleid指模塊ID,可在后臺模塊管理里查詢。對于直接調用模塊的數據,設置正確的模塊ID后,將不需要傳遞table參數,系統會自動獲取。
例如傳遞moduleid=5,系統將識別為調用供應信息,自動設置table參數為sell

table指表名,可在后臺數據庫維護里查詢。對于Destoon系統表,不需要加表的前綴;對于非Destoon系統表,需要填寫完整的表名,且傳遞prefix參數
例如對于Destoon系統表,傳遞table=sell,如果表前綴為destoon_,系統將識別表名為 destoon_sell
對于非Destoon系統表,傳遞table=tb_abc&prefix=或者table=abc&prefix=tb_,系統將識別表名為 tb_abc

fields指查詢的字段,默認為*。可以傳遞例如 fields=title,addtime,但是一般情況下無需傳遞,Destoon獨有的標簽緩存機制會自動緩存查詢結果,不必擔心效率問題。

condition指查詢的條件,如果不傳遞,則為1,代表任意條件的數據(此項需了解SQL語法)。Destoon所有模塊遵循統一標準開發,所以很多條件是通用的。
例如 status=3表示正常通過的信息、status=3 and level=1表示級別為1的信息、status=3 and thumb<>”表示有標題圖片的信息等。

order指數據的排序方法(此項需了解SQL語法)。
例如order=addtime desc表示按添加時間降序排列、order=itemid desc表示按itemid降序排列、order=rand()表示隨機數據等。

pagesize指調用數據的數量,如果不傳遞,默認為10。

template指指定的標簽模板,如果不傳遞,默認為list,位于模板目錄/tag/list.htm,如果傳遞為null,表示不應用標簽模板。參見上述數據顯示過程。

其他常見用法舉例

控制標題長度
在標簽里傳遞length參數,例如&length=20表示20個字符長度(GBK一個漢字占2個字符,UTF-8一個漢字占3個字符),一般情況建議用css隱藏多余字符(定義height和overflow:hidden)
傳遞length參數,系統僅對title字段自動截取,如果需要截取其他字段,可用dsubstr函數
例如 {dsubstr($t[company], 20, ‘…’)} 表示截取company字段為20個字符,截取后,結尾追加…

設置日期顯示格式

可以在標簽里傳遞datetype參數:
1 表示年;
2 表示月-日;
3 表示年-月-日;
4 表示月-日 時:分;
5 表示年-月-日 時:分;
6 表示年-月-日 時:分:秒

也可以在模板里直接使用date函數,例如{date(‘Y-m-d’, $t[addtime])}
表示將時間轉換為 年-月-日 格式

調用某一分類的信息
在標簽里傳遞catid參數,例如&catid=5表示調用分類ID為5的所有信息。

如果調用多個分類,用逗號分隔分類ID,例如
&catid=5,6,7表示調用分類ID為5、6、7的所有信息。

分類調用默認包含子分類的信息,如果不需要包含子分類,可設置&child=0參數。
例如&catid=5&child=0表示只調用分類ID為5的信息,不包括子分類的信息。

調用某一地區的信息
調用地區信息和上述調用分類信息的方法完全相同,將其中的catid換為areaid即可。

顯示信息所在分類

<a
href=”{$MODULE[$moduleid][linkurl]}{$CATEGORY[$t[catid]][linkurl]}”>{$CATEGORY[$t[catid]][catname]}
</a>

控制列數
此項常用于圖片的布局,可使用cols參數。
例如調用12張圖片,一行顯示4個,共3行,則傳遞&pagesize=12&cols=4

支持cols參數的標簽模板限thumb-table.htm和list-table.htm
其中,thumb-table.htm顯示圖片列表,list-table.htm顯示文字列表

如果新建支持cols的標簽模板或直接循環$tags,可參考以上兩個模板的寫法
上述效果可以也可以通過CSS實現,無需使用表格,請自行書寫

顯示文章的簡介
使用{$t[introduce]}變量,如果要截取字數,例如80字符,可使用{dsubstr($t[introduce], 80, ‘…’)}
標簽看似復雜難懂,實際上在理解各個參數的含義和調用流程后,您會了解到標簽實際簡單自由、靈活易用、功能強大。
默認模板里已提供了大量的調用范例和標簽模板,可以在學習中參閱和調試。

三、第三方支付接口文件/api

Destoon里面有一個很重要的板塊,就是商城板塊。有商城就會有交易,而有交易就必須要有一個第三方支付平臺,比如支付寶、財付通、網銀等等平臺。我們就以支付寶為例,你首先需要向支付寶申請一個接口,關于怎么申請支付寶接口百度文庫里有一篇文章寫得很清楚點這里看文章。有了支付寶接口我們就可以在我們的網站后臺設置了。在后臺會員管理/模塊設置里面選擇支付寶。

有一個文檔專門講在線支付配置的可以去看看點這里

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379

推薦閱讀更多精彩內容

  • DestoonB2B標簽調用手冊什么是標簽調用?標簽調用是根據調用條件(condition)從數據表(table)...
    jianghu000閱讀 708評論 0 3
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,733評論 18 399
  • 一、destoon的目錄結構及一些核心的文件 Destoon也算是mvc框架吧,舉個例子 根目錄下的文件夾/com...
    layjoy閱讀 2,083評論 0 4
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,826評論 18 139
  • 一. Java基礎部分.................................................
    wy_sure閱讀 3,830評論 0 11