#Destoon B2B標簽(tag)調用手冊
* * * * *
###什么是標簽調用?
> 標簽調用是根據調用條件(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("moduleid=5&condition=status=3&order=addtime desc&pagesize=10")}-->`
會被轉換為如下的SQL語句:
SELECT *
FROM destoon_sell
WHERE status=3
ORDER BY addtime DESC
LIMIT 0,10
讀出的數據會保存在 $tags 數組里
通常情況下不需要寫table=xxx,應該寫moduleid=模塊ID,系統會自動對應模塊的表
****
**數據顯示過程**
1、通過標簽模板顯示
傳遞&template=abc給標簽函數,例如:
`<!--{tag("moduleid=...&template=abc")}-->`
默認的標簽模板保存在模板目錄/tag/目錄里,例如&template=abc將調用模板目錄/tag/abc.htm模板來顯示數據。
如果標簽模板存放于其他目錄,例如def,則傳遞&dir=def&template=abc,系統將調用模板目錄/def/abc.htm模板。
2、直接在模板里循環數據
`<!--{php $tags=tag("moduleid=...&template=null");}-->`
此寫法傳遞標簽模板為null,并且直接返回數據給$tags數組,此時可以直接在模板里循環了。
以下為一個完整的示例:
~~~
<!--{php $tags=tag("moduleid=...&template=null");}-->
{loop $tags $t}
...
{/loop}
~~~
第一種寫法一般用于多次調用的數據,第二種寫法一般用于只調用一次的數據。
****
**常用參數及含義**
* moduleid
>moduleid指模塊ID,可在后臺模塊管理里查詢。對于直接調用模塊的數據,設置正確的模塊ID后,將不需要傳遞table參數,系統會自動獲取。
例如傳遞moduleid=5,系統將識別為調用供應信息,自動設置table參數為sell。
一般情況下,除了擴展模塊里的功能都需要通過moduleid來調用。
* table
>table指表名,可在后臺數據庫維護里查詢。對于Destoon系統表,不需要加表的前綴;對于非Destoon系統表,需要填寫完整的表名,且傳遞prefix參數。
例如對于Destoon系統表,傳遞table=announce,如果表前綴為destoon_,系統將識別表名為 destoon_announce。
對于非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,表示不應用標簽模板。參見上述數據顯示過程。
* debug
>debug參數用于調試標簽,例如傳遞&debug=1,系統將輸出標簽構造成的SQL語句,以便驗證標簽寫法是否正確,不需要調試的標簽不用加此參數。
****
##其他常見用法舉例##
**&和and的區別**
&用來分割參數,and是sql語句where后的讀取條件,二者完全不同。
**多表聯合查詢**
例如查詢會員名為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=表示系統不再自動在表名前加前綴。
通常通過傳遞moduleid可以實現大部分的調用,除非您確認熟悉聯合查詢,否則不推薦使用。
截至目前,系統默認模板里還沒有一個功能需要用到聯合查詢。
**控制標題長度**
在標簽里傳遞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])} 表示將時間轉換為 年-月-日 格式
date函數的使用請參閱PHP手冊。
**調用某一分類的信息**
在標簽里傳遞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>`
注意:自V4.0,以上寫法將不可用,需要在標簽里傳遞&showcat=1參數,然后在模板里寫`<a href="{$t[caturl]}">{$t[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, '...')}
- 快速入門
- 安裝升級
- 系統安裝
- 系統更新
- 系統升級
- 入門指引
- 模塊管理
- 地區管理
- 分類管理
- 信息發布
- 基礎設置
- 系統維護與設置
- VIP會員管理
- 廣告管理
- 網站安全設置
- 郵件發送配置
- 圖片配置
- 手機短信發送配置
- 生成靜態網頁
- 在線支付接口
- 會員組設置
- 網站備份
- 高級技巧
- 會員整合
- 模塊綁定
- 會員綁定二級域名和頂級域名的方法
- 偽靜態設置
- 單頁采編功能
- 采集數據入庫
- 分類屬性篩選
- 一鍵登錄設置
- 多語言翻譯
- 其它
- 忘記密碼如何找回
- 模板制作
- 模板存放規則及語法參考
- 模板調用手冊
- 公司主頁模板添加
- destoon模板相關參數解析
- DT
- destoon標簽
- MODULE 字段解析
- sell
- index
- 調取資訊分類及列表示例
- 二次開發指南
- 二次開發入門
- 系統目錄文件結構
- 系統常量與變量
- 數據庫操作
- 數據字典
- destoon_404(404日志)
- destoon_ad(廣告)
- destoon_address(收段地址)
- destoon_admin(管理員)
- destoon_admin_log(管理日志)
- destoon_admin_online(在線管理員)
- destoon_ad_place(廣告位)
- destoon_alert(貿易提醒)
- destoon_announce(公告)
- destoon_area(地區)
- destoon_article_21(資訊)
- destoon_article_data_21
- destoon_ask(客服中心)
- destoon_banip(禁止IP)
- destoon_banword(詞語過濾)
- destoon_brand_13(品牌)
- destoon_brand_data_13(品牌內容)
- destoon_buy_6(求購)
- destoon_buy_data_6(求購內容)
- destoon_cache(文件緩存)
- destoon_category(欄目分類)
- destoon_category_option(分類屬性)
- destoon_category_value(分類屬性值)
- destoon_chat(在線聊天)
- destoon_city(城市分站)
- destoon_comment(評論)
- destoon_comment_ban(評論禁止)
- destoon_comment_stat(評論統計)
- destoon_company(公司)
- destoon_company_data(公司內容)
- destoon_company_setting(公司設置)
- destoon_down_15(下載)
- destoon_down_data_15(下載內容)
- destoon_exhibit(展會)
- destoon_exhibit_data(展會內容)
- destoon_exhibit_order(展會報名)
- destoon_favorite-商機收藏
- destoon_fetch-單面采編
- destoon_fields-自定義字段
- destoon_finance_card-充值卡
- destoon_finance_cash-申請提現
- destoon_finance_charge-在線充值
- destoon_finance_credit-積分流水
- destoon_group-團購
- destoon_group_order-團購定單
- destoon_group_date團購內容
- destoon_gift_order-積分換禮訂單
- destoon_gift-積分換禮
- destoon_friend-我的商友
- destoon_finance_sms-短信增減
- destoon_finance_record-財務流水
- destoon_finance_promo-優惠碼
- destoon_finance_pay-支付記錄
- destoon_guestbook-留言本
- destoon_honor-榮譽資質
- destoon_info_22-招商
- destoon_info_data_22-招商內容
- destoon_job-招聘
- destoon_job_apply-應聘工作
- destoon_job_data-招聘內容
- destoon_job_talent-人才庫
- destoon_keylink-關聯鏈接
- destoon_keyword-關鍵詞
- destoon_know-知道
- destoon_know_answer-知道回答
- destoon_know_data-知道內容
- destoon_know_expert-知道專家
- destoon_know_vote-知道投票
- destoon_link-友情鏈接
- destoon_login-登錄日志
- destoon_mail-郵件訂閱
- destoon_mail_list-訂閱列表
- destoon_mail_log-郵件記錄
- destoon_mall-商城
- destoon_mall_cart-購物車
- destoon_mall_comment-定單評論
- destoon_mall_data-商城內容
- destoon_mall_express-運費模板
- destoon_oauth-一鍵登錄
- destoon_mall_order-商城定單
- destoon_mall_stat-評分統計
- destoon_member-會員
- destoon_member_group-會員組
- destoon_message-站內信件
- destoon_module-模型
- destoon_news-新聞
- destoon_news_data-新聞內容
- destoon_poll_record-票選記錄
- destoon_online-在線會員
- destoon_page-公司單頁
- destoon_page_data-公司單頁內容
- destoon_photo_12-圖庫
- destoon_photo_data_12-圖庫內容
- destoon_photo_item_12-圖庫圖片
- destoon_poll-票選
- destoon_poll_item-票選選項
- destoon_validate-資料認證
- destoon_question-驗證問題
- destoon_quote-行情
- destoon_quote_data-行情內容
- destoon_quote_price-行情報價
- destoon_quote_product-行情產品
- destoon_resume-簡歷
- destoon_resume_data-簡歷內容
- destoon_sell_5-供應
- destoon_sell_data_5-供應內容
- destoon_sell_search_5-供應搜索
- destoon_session-sesssion
- destoon_setting-網站設置
- destoon_sms-短信記錄
- destoon_special-專題
- destoon_special_data-專題內容
- destoon_special_item-專題信息
- destoon_sphinx
- destoon_spread-排名推廣
- destoon_spread_price-排名起價
- destoon_style-公司主頁模板
- destoon_type-分類
- destoon_upgrade-會員升級
- destoon_upload_0-上傳記錄0
- destoon_webpage-單網頁
- destoon_video_14-視頻
- destoon_video_data_14-視頻內容
- destoon_vote-投票
- destoon_vote_record-投票記錄