您現在的位置·•│▩: 首頁 > 新聞 > 建站常識

DESTOON常用引數呼叫說明

來源·•│▩:網路公司釋出時間·•│▩:2021-04-14熱度·•│▩:29118

 近日•₪✘·,公司要用destoon系統進行二次開發b2b平臺◕╃◕。所以•₪✘·,最近在看看destoon一些內建的機制以及標籤的呼叫◕╃◕。

之前就知道destoon是做b2b的一款cms•₪✘·,一直沒有實際的操作過•₪✘·,現在剛好有機會接觸•₪✘·,那麼下面我就將destoon的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 db_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•₪✘·,如果表字首為db_•₪✘·,系統將識別表名為 db_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語句•₪✘·,以便驗證標籤寫法是否正確•₪✘·,不需要除錯的標籤不用加此引數◕╃◕。

資料字典

參考·•│▩:http://help.destoon.com/dict.php

其他常見用法舉例

&和and的區別

&用來分割引數•₪✘·,and是sql語句where後的讀取條件•₪✘·,二者完全不同◕╃◕。

多表聯合查詢

例如查詢會員名為destoon的會員和公司資料•₪✘·,可以使用·•│▩:

{tag("table=db_member m,db_company c&prefix=&condition=m.userid=c.userid and m.username='destoon'&template=list-com")}

db_member和db_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, '...')}

小結

上面就是destoon標籤的一些基本的呼叫方式以及引數◕╃◕。看似複雜難懂•₪✘·,實際上在理解各個引數的含義和呼叫流程後•₪✘·,您會了解到標籤實際簡單自由··✘↟₪、靈活易用··✘↟₪、功能強大◕╃◕。

預設模板裡已提供了大量的呼叫範例和標籤模板•₪✘·,可以一邊學習一邊查閱•₪✘·,這樣才能更好的理解熟悉destoon系統◕╃◕。

本文來源·•│▩:http://www.kwsolidarity.com/news/show-1639.html
大狠狠大臿蕉香蕉大视频,人妻[21p]大胆,日韩精品无码去免费专区,少妇人妻偷人精品视频1出轨