程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> destoon官方標簽大全

destoon官方標簽大全

編輯:PHP綜合

什麼是標簽調用?

標簽調用是根據調用條件(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';
三個變量
$expires 表示標簽緩存過期時間>0 緩存$expires秒;0 – 系統默認標簽緩存時間;-1 – 不緩存;-2 – 緩存SQL結果;
一般情況保持默認不需要傳遞。


數據讀取過程

例如以下標簽:

<!–{tag(“table=sell&condition=status=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
moduleid指模塊ID,可在後台模塊管理裡查詢。對於直接調用模塊的數據,設置正確的模塊ID後,將不需要傳遞table參數,系統會自動獲取。
例如傳遞moduleid=5,系統將識別為調用供應信息,自動設置table參數為sell

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

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

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

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

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

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

多表聯合查詢
例如查詢會員名為destoon的會員和公司資料,可以使用:

{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是表的實際名稱(包含表前綴),prefix=”表示系統不再自動在表名前加前綴

控制標題長度
在標簽裡傳遞length參數,例如&length=20表示20個字符長度(一個漢字占2個字符),一般情況建議用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, ‘…')}

函數原型
tag($parameter, $expires = 0)
$parameter 表示傳遞給tag函數的字符串,系統自動將其轉換為多個變量
例如傳遞 table=destoon&pagesize=10,系統相當於得到$table = ‘destoon';$pagesize = 10;兩個變量
$expires 表示緩存過期時間
>0 緩存$expires秒;0 – 系統默認時間;-1 – 不緩存;-2 – 緩存SQL;一般情況保持默認即可。

常量
{DT_SKIN}
系統風格網址。
{DT_PATH}
網站首頁網址。

變量
$tags
以數組類型保存標簽調用的數據,可通過loop語法遍歷顯示。
$pages
保存數據分頁代碼,僅在調用了分頁時有效。
$MODULE[5][name]
ID為5的模塊名稱。
$MODULE[5][linkurl]
ID為5的模塊網址。
$CATEGORY[5][catname]
ID為5的分類名稱(僅變量$CATEGORY存在時有效)。
$CATEGORY[5][linkurl]
ID為5的分類網址(僅變量$CATEGORY存在時有效)。

常用字段
title 標題; linkurl 鏈接; catid 分類ID; introduce 簡介; addtime 添加時間; 常用函數 dsubstr($string, $length, $suffix = ”)
將字符串$string截取為$length長,尾部追加$suffix(例如..)
date($format, $timestamp)
將時間戳$timestamp轉化為$format(例如Y-m-d)格式

標簽模板
模板保存於./template/default/tag/目錄;
建議不要刪除或者修改自帶的模板,推薦在自帶模板基礎上新建模板並應用。

1.標簽格式的大致說明

<!–{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是標簽截取字數
&pagesize=10是調用條數
&datetype=2是顯示時間添加時間

2.調用最新加入企業

<!–{tag(“moduleid=4&table=company&condition=groupid>4&pagesize=10&order=userid desc&template=list-com”)}–>

3.如何調用其中一個企業會員的供求信息及資訊
在condition=裡加 and username='xxx'? xxx為會員登錄名

4.如何調用 供應 求購 產品 下的 某個分類
調用分類下的信息可以設置 &catid=行業id&child=1 child=1表示同時調用下屬的行業

5.調用二級欄目信息列表

<!–{tag(“moduleid=$moduleid&table=article_$moduleid&catid=$catid&child=1
&condition=status=3&order=”.$MOD[order].”&pagesize=6&datetype=2&target=_blank”)}–>

如果你是在文章模塊裡調用 可以用上面的代碼 $catid 改為你要調用的欄目id即可
如果需要同時調用欄目下的信息 child=1即可 否則 child=0
如果是在網站其他地方調用,可以用下面的代碼:

<!–{tag(“moduleid=9&table=article_9&catid=$catid&child=1&condition=status=3&order=addtime desc&pagesize=6&datetype=2&target=_blank”)}–>

注意moduleid的值要與你調用的模塊id保持一致
補充:
下面這個在首頁調用成功

<!–{tag(“moduleid=9&table=article_9&catid=$catid&child=1&condition=status=3&order=addtime desc&pagesize=6&datetype=2&target=_blank”)}–>

但是我想要資訊頁內部的模版列表,也就是每條只顯示22個字。

6.首頁資訊欄目這裡怎麼調用
“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.公司列表 不能控制字數!!
你可以直接修改 list-com.htm
{$t[company]} 為 {dsubstr($t[company], $length)}

8.TAG常用標簽
{$CATEGORY[$t[catid]]["catname"]} 所屬欄目名稱; {timetodate($t["addtime"], $datetype)}? 發布時間

9.其他
你可以通過&template= 來指定標簽模版
如果沒用這個參數 默認是list
位於模版目錄tag目錄
資訊 級別level 1級為 推薦文章 ;2級為 幻燈圖片;3級為 推薦圖文;4級為 頭條文章;5級為 頭條相關

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved