在CMS插件中的前端視圖模板中有大量使用了自定義標簽,我們在修改或制作模板的時候可以方便快捷的使用自定義標簽來調用我們相關的數據。
標簽庫位于/addons/cms/taglib/Cms.php文件,我們可以看到標簽庫有定義可調用的標簽和屬性,如下
# protected $tags = [
// 標簽定義: attr 屬性列表 close 是否閉合(0 或者1 默認1) alias 標簽別名 level 嵌套層次
'channel' => ['attr' => 'name', 'close' => 0],
'archives' => ['attr' => 'name', 'close' => 0],
'tags' => ['attr' => 'name', 'close' => 0],
'block' => ['attr' => 'id,name', 'close' => 0],
'config' => ['attr' => 'name', 'close' => 0],
'page' => ['attr' => 'name', 'close' => 0],
...
];
當然上面只是定義,其中有兩個參數需要關注下以下,attr指標簽用調用的屬性,close指是否需要閉合,alias和level暫未使用。以下是詳細的標簽使用和參數介紹
# 欄目詳情標簽channel
標簽介紹:用于調用欄目的字段信息
適用范圍:頻道頁、列表頁、詳情頁
調用示例:
//欄目ID
{cms:channel name="id" /}
//欄目名稱
{cms:channel name="name" /}
//欄目圖片
{cms:channel name="image" /}
文檔詳情標簽archives
標簽介紹:用于顯示文檔主表和副表字段信息
適用范圍:詳情頁
調用示例:
//文檔查看次數
{cms:archives name="views" /}
//文檔發布時間
{cms:archives name="createtime|date='d',###" /}
//文檔內容
{cms:archives name="content" /}
//調用副表字段 example1
{cms:archives name="example1" /}
標簽列表標簽tags
標簽介紹:用于顯示標簽字段信息
適用范圍:標簽頁
調用示例:
//標簽名稱
{cms:tags name="name" /}
//標簽文檔數
{cms:tags name="archives" /}
區塊標簽block
標簽介紹:用于調用顯示區塊信息,自動判斷區塊內容來顯示圖片或文本鏈接
適用范圍:全部
調用示例:
//通過區塊ID來調用顯示區塊
{cms:block id="1" /}
//通過名稱Name來調用顯示區塊
{cms:block name="bannerad" /}
配置標簽config
標簽介紹:用于調用框架的配置信息
適用范圍:全部
調用示例:
//調用站點名稱
{cms:config name="site.name" /}
//調用備案信息
{cms:config name="site.beian" /}
//調用當前調試狀態
{cms:config name="app_debug" /}
單頁詳情標簽page
標簽介紹:用于調用單調的字段信息
適用范圍:單頁詳情頁
調用示例:
//調用單頁標題
{cms:page name="title" /}
//調用單頁內容
{cms:page name="content" /}
導航欄標簽nav
標簽介紹:用于調用導航欄信息
適用范圍:全部
標簽參數:
maxlevel:最大調用的層級
condition:篩選條件,可使用SQL字段篩選
cache:緩存時長,為0則不緩存
調用示例:
//控制最大層級為3層的導航欄列表,且不緩存
{cms:nav maxlevel="3" cache="0" /}
//調用模型為1的第一層欄目列表
{cms:nav maxlevel="1" condition="model_id=1" /}
上下頁標簽prevnext
標簽介紹:用于調用當前文檔的上下篇文章
適用范圍:文檔詳情頁
標簽參數:
id:循環變量名
type:類型,prev=上一篇,next=下一篇
archives:文檔的ID
channel:欄目的ID
調用示例:
//調用上一篇文章
{cms:prevnext id="prev" type="prev" archives="__ARCHIVES__.id" channel="__CHANNEL__.id"}
//文章URL
{$next.url}
//文章標題
{$next.title}
{/cms:prevnext}
//調用下一篇文章
{cms:prevnext id="next" type="next" archives="__ARCHIVES__.id" channel="__CHANNEL__.id"}
//文章URL
{$next.url}
//文章標題
{$next.title}
{/cms:prevnext}
區塊列表標簽blocklist
標簽介紹:用于調用框架的配置信息
適用范圍:全部
標簽參數:
id:循環變量名
key:循環索引名
row:行數
limit:行數
empty:為空時顯示的信息
mod:取模基數,常用于控制多少條數據后換行、變色等
cache:緩存時間,為0則不緩存,為true則永久緩存
orderby:排序字段,支持id,name,createtime,updatetime,rand(隨機)
orderway:排序方式,asc=正序,desc=倒序
imgwidth:圖片寬度
imgheight:圖片高度
condition:篩選條件,可使用SQL字段篩選
name:指定區塊的名稱
調用示例:
//調用name為focus的5條區塊數據列表
{cms:blocklist id="block" name="focus" row="5"}
//可以在標簽內啟用block表的所有字段數據
{$block.title}
{$block.id}
{$block.content}
{/cms:blocklist}
評論標簽commentlist
標簽介紹:用于調用文檔或單頁的評論列表
適用范圍:詳情頁、單頁詳情頁
標簽參數:
id:循環變量名
key:循環索引名
row:行數
limit:行數
empty:為空時顯示的信息
mod:取模基數,常用于控制多少條數據后換行、變色等
cache:緩存時間,為0則不緩存,為true則永久緩存
orderby:排序字段,支持id,name,createtime,updatetime,rand(隨機)
orderway:排序方式,asc=正序,desc=倒序
imgwidth:圖片寬度
imgheight:圖片高度
condition:篩選條件,可使用SQL字段篩選
type:類型,支持page=單頁,archives=文檔
aid:單頁或文檔ID
pid:父評論ID
fragment:錨點元素ID
調用示例:
{cms:commentlist id="comment" type="[type]" aid="$aid" pagesize="10"}
//這里面可以調用cms_comment表的所有字段數據
{$comment.id}
{$comment.createtime|human_date}
{$comment.content}
//還可以調用user表的數據
{$comment.user.id}
{$comment.user.avatar}
{$comment.user.nickname}
{/cms:commentlist}
面包屑標簽breadcrumb
標簽介紹:用于調用當前文檔或欄目的面板屑
適用范圍:全部
標簽參數:
id:循環變量名
key:循環索引名
empty:為空時顯示的信息
mod:取模基數,常用于控制多少條數據后換行、變色等
調用示例:
{cms:breadcrumb id="item"}
//鏈接文字
{$item.name}
//鏈接地址
{$item.url}
{/cms:breadcrumb}
欄目列表標簽channellist
標簽介紹:用于調用欄目的列表
適用范圍:全部
標簽參數:
id:循環變量名
key:循環索引名
row:行數
limit:行數
empty:為空時顯示的信息
mod:取模基數,常用于控制多少條數據后換行、變色等
cache:緩存時間,為0則不緩存,為true則永久緩存
orderby:排序字段,支持id,createtime,updatetime,rand(隨機),weigh(權重)
orderway:排序方式,asc=正序,desc=倒序
imgwidth:圖片寬度
imgheight:圖片高度
condition:篩選條件,可使用SQL字段篩選
model:模型ID
field:調用字段,默認為*
type:指定類型,top=頂級欄目,brother=兄弟欄目,son=子欄目,sons=子孫欄目
typeid:指定類型關聯的ID,如果type為空,這里可指定欄目的ID集合
調用示例:
{cms:channellist id="channel" type="son" typeid="$__CHANNEL__.id"}
//這里面可以調用cms_channel表的所有字段數據及其它擴展信息
{$channel.name}
{$channel.id}
//欄目組合鏈接
{$channel.textlink}
//欄目鏈接
{$channel.url}
//是否有縮略圖
{$channel.hasimage}
//圖片組合鏈接
{$channel.imglink}
//圖片HTML
{$channel.img}
{/cms:channellist}
文檔列表標簽arclist
標簽介紹:用于調用文檔的列表
適用范圍:全部
標簽參數:
id:循環變量名
key:循環索引名
row:行數
limit:行數
empty:為空時顯示的信息
mod:取模基數,常用于控制多少條數據后換行、變色等
cache:緩存時間,為0則不緩存,為true則永久緩存
orderby:排序字段,支持id,createtime,updatetime,rand(隨機),weigh(權重),views(瀏覽次數)
orderway:排序方式,asc=正序,desc=倒序
imgwidth:圖片寬度
imgheight:圖片高度
condition:篩選條件,可使用SQL字段篩選
model:模型ID
channel:欄目ID或欄目ID集合
tags:標簽
addon:副本字段集,如果為true則表示所有副表字段,多個字段以,進行分隔
field:調用字段,默認為*
flag:標志
調用示例:
{cms:arclist id="item" row="8" orderby="id" orderway="desc"}
//這里面可以調用cms_archives表的所有字段數據,如果啟用了addon屬性還可以調用副表數據
{$item.title}
{$item.image}
{$item.keywords}
//是否有預覽圖
{$item.hasimage}
//文檔組合鏈接
{$item.textlink}
//文檔鏈接
{$item.url}
//欄目組合鏈接
{$item.channellink}
//圖片組合鏈接
{$item.imglink}
//圖片HTML
{$item.img}
{/cms:arclist}
標簽列表標簽tagslist
標簽介紹:用于調用標簽的列表
適用范圍:全部
標簽參數:
id:循環變量名
key:循環索引名
row:行數
limit:行數
empty:為空時顯示的信息
mod:取模基數,常用于控制多少條數據后換行、變色等
cache:緩存時間,為0則不緩存,為true則永久緩存
orderby:排序字段,支持id,createtime,updatetime,rand(隨機),weigh(權重),views(瀏覽次數)
orderway:排序方式,asc=正序,desc=倒序
imgwidth:圖片寬度
imgheight:圖片高度
condition:篩選條件,可使用SQL字段篩選
field:調用字段,默認為*
調用示例:
{cms:tagslist id="tag" orderby="rand" limit="30"}
//標簽名稱
{$tags.name}
//文檔鏈接
{$tags.url}
//文檔數
{$tags.archives}
{/cms:tagslist}
列表篩選標簽pagefilter
標簽介紹:用于在列表頁顯示篩選信息的列表
適用范圍:列表頁
標簽參數:
id:循環變量名
key:循環索引名
empty:為空時顯示的信息
mod:取模基數,常用于控制多少條數據后換行、變色等
調用示例:
{cms:pagefilter id="filter" exclude=""}
//組標題
{$filter.title}
//通常篩選標簽需要配置volist來顯示過濾的詳細選項
{volist name="$filter.content" id="item"}
//當前選項是否選中
{$item.active}
//篩選項URL
{$item.url}
//篩選項名稱
{$item.title}
{/volist}
{/cms:pagefilter}
列表排序標簽pageorder
標簽介紹:用于在列表頁顯示排序信息的列表
適用范圍:列表頁
標簽參數:
id:循環變量名
key:循環索引名
empty:為空時顯示的信息
mod:取模基數,常用于控制多少條數據后換行、變色等
調用示例:
{cms:pageorder id="order"}
//是否當前選中項
{$order.active?'active':''}
//排序鏈接
{$order.url}
//排序名稱
{$order.title}
{/cms:pageorder}
列表標簽pagelist
標簽介紹:用于在列表頁顯示當前的類別下分頁后的文檔列表信息,此標簽和arclist的標簽區別在于此標簽是指定當前欄目下的文檔數據,是計算過分頁的
適用范圍:列表頁
標簽參數:
id:循環變量名
key:循環索引名
empty:為空時顯示的信息
mod:取模基數,常用于控制多少條數據后換行、變色等
調用示例:
{cms:pagelist id="item"}
//這里面可以調用cms_archives表的所有字段數據,如果啟用了addon屬性還可以調用副表數據
{$item.title}
{$item.image}
{$item.keywords}
//是否有預覽圖
{$item.hasimage}
//文檔組合鏈接
{$item.textlink}
//文檔鏈接
{$item.url}
//欄目組合鏈接
{$item.channellink}
//圖片組合鏈接
{$item.imglink}
//圖片HTML
{$item.img}
{/cms:pagelist}
列表分頁標簽pageinfo
標簽介紹:用于在列表頁顯示分頁信息
適用范圍:列表頁
標簽參數:
type:保留參數
調用示例:
{cms:pageinfo type="full" /}
評論信息標簽commentinfo
標簽介紹:用于在文檔頁顯示評論分頁信息
適用范圍:文檔詳情頁
標簽參數:
type:保留參數
調用示例:
{cms:commentinfo type="full" /}