Destoon B2B標籤 tag 呼叫手冊

2021-08-08 06:47:44 字數 4075 閱讀 5040

什麼是標籤呼叫?

標籤呼叫是根據

呼叫條件(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結果;

一般情況保持預設不需要傳遞。

資料讀取過程

例如以下標籤:

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

select *

from destoon_sell

where status=3

order by addtime desc

limit 0,10

讀出的資料會儲存在 

$tags

陣列裡通常情況下不需要寫table=***,應該寫moduleid=模組id,系統會自動對應模組的表

資料顯示過程

1、通過標籤模板顯示

傳遞&template=abc給標籤函式,例如:

預設的標籤模板儲存在

模板目錄/tag/

目錄裡,例如

&template=abc

將呼叫模板目錄/tag/abc.htm

模板來顯示資料。

如果標籤模板存放於其他目錄,例如def,則傳遞

&dir=def&template=abc

,系統將呼叫

模板目錄/def/abc.htm

模板。2、直接在模板裡迴圈資料

此寫法傳遞標籤模板為null,並且直接返回資料給

$tags

陣列,此時可以直接在模板裡迴圈了。

以下為乙個完整的示例:

...

第一種寫法一般用於多次呼叫的資料,第二種寫法一般用於只呼叫一次的資料。

常用引數及含義

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的會員和公司資料,可以使用:

destoon_member和destoon_company是表的實際名稱(包含表字首),prefix=表示系統不再自動在表名前加字首。

通常通過傳遞moduleid可以實現大部分的呼叫,除非您確認熟悉聯合查詢,否則不推薦使用。

截至目前,系統預設模板裡還沒有乙個功能需要用到聯合查詢。

控制標題長度

在標籤裡傳遞length引數,例如&length=20表示20個字元長度(乙個漢字佔2個字元),一般情況建議用css隱藏多餘字元(定義height和overflow:hidden)。

傳遞length引數,系統僅對title欄位自動擷取,如果需要擷取其他字段,可用dsubstr函式。

例如 表示擷取company欄位為20個字元,擷取後,結尾追加...

設定日期顯示格式

可以在標籤裡傳遞datetype引數:

1 表示 年; 

2 表示 月-日;

3 表示 年-月-日;

4 表示 月-日 時:分;

5 表示 年-月-日 時:分;

6 表示 年-月-日 時:分:秒

也可以在模板裡直接使用date函式,例如 表示將時間轉換為 年-月-日 格式

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即可。

顯示資訊所在分類

注意:自v4.0,以上寫法將不可用,需要在標籤裡傳遞&showcat=1引數,然後在模板裡寫

控制列數

此項常用於的布局,可使用cols引數。

例如呼叫12張,一行顯示4個,共3行,則傳遞&pagesize=12&cols=4

支援cols引數的標籤模板限thumb-table.htm和list-table.htm

其中,thumb-table.htm顯示列表,list-table.htm顯示文字列表

如果新建支援cols的標籤模板或直接迴圈$tags,可參考以上兩個模板的寫法

上述效果可以也可以通過css實現,無需使用**,請自行書寫

顯示文章的簡介

使用變數,如果要擷取字數,例如80字元,可使用

小結標籤看似複雜難懂,實際上在理解各個引數的含義和呼叫流程後,您會了解到標籤實際簡單自由、靈活易用、功能強大。

預設模板裡已提供了大量的呼叫範例和標籤模板,可以在學習中參閱和除錯。

標籤呼叫是製作模板必備的知識,希望您能早日掌握。

B2B和B2C CRM 差異概述

b2b和b2c crm 差異概述 因此,它的工作流程應該是 1.識別並輸入聯絡人 包括人口統計和分類方面的市場戰略。2.判斷該聯絡人的潛力。3.聯絡人購買產品。4.聯絡人現在是一名客戶了,不管是公司客戶還是個人消費者。你覺得這個思路有瑕疵嗎?一名客戶肯定是乙個聯絡人,但是乙個聯絡人不一定是一名客戶 ...

B2B和B2C CRM 差異概述

don peppers and martha rogers 2007 09 29 因此,它的工作流程應該是 1.識別並輸入聯絡人 包括人口統計和分類方面的市場戰略。2.判斷該聯絡人的潛力。3.聯絡人購買產品。4.聯絡人現在是一名客戶了,不管是公司客戶還是個人消費者。你覺得這個思路有瑕疵嗎?一名客戶肯...

早期struts2中使用JSTL標籤的bug

struts2已經整合了jsp標準的 jstl標籤用法,比如 action裡面定義的變數private int selleruin 除了標籤外,還可以使用如下jstl來輸出到頁面上 struts2會自動對http請求引數做型別轉換。請求引數selleruin 123會正常處理,而請求引數seller...