Destoon B2B標(biāo)簽調(diào)用手冊(cè)
什么是標(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è)變量
$expires 表示標(biāo)簽緩存過(guò)期時(shí)間>0 緩存$expires秒;0 – 系統(tǒng)默認(rèn)標(biāo)簽緩存時(shí)間,;-1 – 不緩存,;-2 – 緩存SQL結(jié)果;
一般情況保持默認(rèn)不需要傳遞,。
數(shù)據(jù)讀取過(guò)程
例如以下標(biāo)簽:
<!–{tag(“table=sell&condition=status=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宸庞谄渌夸?,例如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,并且直接返回?cái)?shù)據(jù)給$tags數(shù)組,,此時(shí)可以直接在模板里循環(huán)了
以下為一個(gè)完整的示例:
<!–{php $tags=tag(“table=…&template=null”);}–>
{loop $tags $t}
…
{/loop>
第一種寫法一般用于多次調(diào)用的數(shù)據(jù),,第二種寫法一般用于只調(diào)用一次的數(shù)據(jù)。
常用參數(shù)及含義
moduleid
moduleid指模塊ID,,可在后臺(tái)模塊管理里查詢,。對(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
table指表名,,可在后臺(tái)數(shù)據(jù)庫(kù)維護(hù)里查詢,。對(duì)于Destoon系統(tǒng)表,,不需要加表的前綴;對(duì)于非Destoon系統(tǒng)表,,需要填寫完整的表名,,且傳遞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
fields指查詢的字段,,默認(rèn)為*??梢詡鬟f例如 fields=title,addtime,,但是一般情況下無(wú)需傳遞,Destoon獨(dú)有的標(biāo)簽緩存機(jī)制會(huì)自動(dòng)緩存查詢結(jié)果,,不必?fù)?dān)心效率問(wèn)題,。
condition
condition指查詢的條件,如果不傳遞,,則為1,,代表任意條件的數(shù)據(jù)(此項(xiàng)需了解SQL語(yǔ)法)。Destoon所有模塊遵循統(tǒng)一標(biāo)準(zhǔn)開發(fā),,所以很多條件是通用的,。
例如 status=3表示正常通過(guò)的信息、status=3 and level=1表示級(jí)別為1的信息,、status=3 and thumb<>”表示有標(biāo)題圖片的信息等,。
order
order指數(shù)據(jù)的排序方法(此項(xiàng)需了解SQL語(yǔ)法)。
例如order=addtime desc表示按添加時(shí)間降序排列,、order=itemid desc表示按itemid降序排列,、order=rand()表示隨機(jī)數(shù)據(jù)等。
pagesize
pagesize指調(diào)用數(shù)據(jù)的數(shù)量,,如果不傳遞,,默認(rèn)為10。
template
template指指定的標(biāo)簽?zāi)0?,如果不傳遞,,默認(rèn)為list,位于模板目錄/tag/list.htm,,如果傳遞為null,,表示不應(yīng)用標(biāo)簽?zāi)0濉⒁?jiàn)上述數(shù)據(jù)顯示過(guò)程,。
其他常見(jiàn)用法舉例
多表聯(lián)合查詢
例如查詢會(huì)員名為destoon的會(huì)員和公司資料,,可以使用:
{tag(“table=destoon_member m,destoon_company c&prefix=”&condition=m.userid=c.userid and m.username=’destoon’&template=list-com”)}
destoon_member和destoon_company是表的實(shí)際名稱(包含表前綴),,prefix=”表示系統(tǒng)不再自動(dòng)在表名前加前綴
控制標(biāo)題長(zhǎng)度
在標(biāo)簽里傳遞length參數(shù),例如&length=20表示20個(gè)字符長(zhǎng)度(一個(gè)漢字占2個(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)用某一分類的信息
在標(biāo)簽里傳遞catid參數(shù),,例如&catid=5表示調(diào)用分類ID為5的所有信息,。
如果調(diào)用多個(gè)分類,用逗號(hà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ù)
此項(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è)模板的寫法
上述效果可以也可以通過(guò)CSS實(shí)現(xiàn),,無(wú)需使用表格,,請(qǐng)自行書寫
顯示文章的簡(jiǎn)介
使用{$t[introduce]}變量,,如果要截取字?jǐn)?shù),,例如80字符,可使用{dsubstr($t[introduce], 80, ‘…’)}
函數(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)即可。
常量
{DT_SKIN}
系統(tǒng)風(fēng)格網(wǎng)址,。
{DT_PATH}
網(wǎng)站首頁(yè)網(wǎng)址,。
變量
$tags
以數(shù)組類型保存標(biāo)簽調(diào)用的數(shù)據(jù),可通過(guò)loop語(yǔ)法遍歷顯示,。
$pages
保存數(shù)據(jù)分頁(yè)代碼,,僅在調(diào)用了分頁(yè)時(shí)有效。
$MODULE[5][name]
ID為5的模塊名稱,。
$MODULE[5][linkurl]
ID為5的模塊網(wǎng)址,。
$CATEGORY[5][catname]
ID為5的分類名稱(僅變量$CATEGORY存在時(shí)有效)。
$CATEGORY[5][linkurl]
ID為5的分類網(wǎng)址(僅變量$CATEGORY存在時(shí)有效),。
常用字段
title 標(biāo)題,; linkurl 鏈接; catid 分類ID,; introduce 簡(jiǎn)介,; addtime 添加時(shí)間; 常用函數(shù) dsubstr($string, $length, $suffix = ”)
將字符串$string截取為$length長(zhǎng),尾部追加$suffix(例如..)
date($format, $timestamp)
將時(shí)間戳$timestamp轉(zhuǎn)化為$format(例如Y-m-d)格式
標(biāo)簽?zāi)0?
模板保存于./template/default/tag/目錄,;
建議不要?jiǎng)h除或者修改自帶的模板,,推薦在自帶模板基礎(chǔ)上新建模板并應(yīng)用。
1.標(biāo)簽格式的大致說(shuō)明
<!–{tag(“moduleid=9&table=article_9&length=40&condition=status=3&pagesize=10&datetype=2&order=addtime desc&target=_blank”)}–>
moduleid=9是資訊模塊ID, 模塊ID去模塊管理查看,;
article是資訊模塊目錄名,;
&length=40是標(biāo)簽截取字?jǐn)?shù)
&pagesize=10是調(diào)用條數(shù)
&datetype=2是顯示時(shí)間添加時(shí)間
2.調(diào)用最新加入企業(yè)
<!–{tag(“moduleid=4&table=company&condition=groupid>4&pagesize=10&order=userid desc&template=list-com”)}–>
3.如何調(diào)用其中一個(gè)企業(yè)會(huì)員的供求信息及資訊
在condition=里加 and username=’xxx’? xxx為會(huì)員登錄名
4.如何調(diào)用 供應(yīng) 求購(gòu) 產(chǎn)品 下的 某個(gè)分類
調(diào)用分類下的信息可以設(shè)置 &catid=行業(yè)id&child=1 child=1表示同時(shí)調(diào)用下屬的行業(yè)
5.調(diào)用二級(jí)欄目信息列表
<!–{tag(“moduleid=$moduleid&table=article_$moduleid&catid=$catid&child=1
&condition=status=3&order=”.$MOD[order].”&pagesize=6&datetype=2&target=_blank”)}–>
如果你是在文章模塊里調(diào)用 可以用上面的代碼 $catid 改為你要調(diào)用的欄目id即可
如果需要同時(shí)調(diào)用欄目下的信息 child=1即可 否則 child=0
如果是在網(wǎng)站其他地方調(diào)用,,可以用下面的代碼:
<!–{tag(“moduleid=9&table=article_9&catid=$catid&child=1&condition=status=3&order=addtime desc&pagesize=6&datetype=2&target=_blank”)}–>
注意moduleid的值要與你調(diào)用的模塊id保持一致
補(bǔ)充:
下面這個(gè)在首頁(yè)調(diào)用成功
<!–{tag(“moduleid=9&table=article_9&catid=$catid&child=1&condition=status=3&order=addtime desc&pagesize=6&datetype=2&target=_blank”)}–>
但是我想要資訊頁(yè)內(nèi)部的模版列表,,也就是每條只顯示22個(gè)字。
6.首頁(yè)資訊欄目這里怎么調(diào)用
“9”為你模塊的ID
{php $C = get_maincat(0, cache_read(‘category-9.php’));}
{loop $C $k $v}
<a href=”{$MODULE[9][linkurl]}{$v[linkurl]}”>{$v[catname]}</a>
{/loop}
7.公司列表 不能控制字?jǐn)?shù)??!
你可以直接修改 list-com.htm
{$t[company]} 為 {dsubstr($t[company], $length)}
8.TAG常用標(biāo)簽
{$CATEGORY[$t[catid]]["catname"]} 所屬欄目名稱; {timetodate($t["addtime"], $datetype)}? 發(fā)布時(shí)間
9.其他
你可以通過(guò)&template= 來(lái)指定標(biāo)簽?zāi)0?
如果沒(méi)用這個(gè)參數(shù) 默認(rèn)是list
位于模版目錄tag目錄
資訊 級(jí)別level 1級(jí)為 推薦文章 ;2級(jí)為 幻燈圖片,;3級(jí)為 推薦圖文,;4級(jí)為 頭條文章;5級(jí)為 頭條相關(guān)