fastadminCMS内容管理插件标签文档

  • 内容
  • 评论
  • 相关

在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指是否需要闭合,aliaslevel暂未使用。以下是详细的标签使用和参数介绍

栏目详情标签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" /}

CMS如何在首页显示自定义的字段内容(副表)

{cms:arclist id="item" model="2" addon="id,content" orderby="views" row="4"}
    {$item.content}
{/cms:arclist}
注意副表调用只有在定义model或channel时才会作用。

cms 标签如何动态获取 diyname?

如题,cms 标签如何动态获取并使用 diyname?

例如:
在 CMS 区块管理中,按栏目 diyname 作为区块名称,配置广告 banner。
在 CMS 栏目页中,使用 blocklist 标签时,动态获取栏目 diyname,显示配置的广告 banner。
使用 __CHANNEL__.diyname 无效

请参考:

{cms:blocklist id="block" name="$__CHANNEL__->diyname" row="5"}
<div class="item {if $i==1}active{/if}">
    <a href="{$block.url}">
        <div class="carousel-img" style="background-image:url('{$block.image|cdnurl}');"></div>
        <div class="carousel-caption hidden-xs">
            <h3>{$block.title}</h3>
        </div>
    </a>
</div>
{/cms:blocklist}

详情页如何调用发布文章的会员用户名等相关信息

使用

{$__ARCHIVES__.user.nickname}
{$__ARCHIVES__.user.avatar}
如果报错,请:请在addons\cms\model\Archives.php中添加
/**
     * 关联模型
     */
    public function user()
    {
        return $this->belongsTo("\app\common\model\User", 'user_id')->setEagerlyType(1);
    }

模板输出字符长度怎么控制?

对于中文的最好使用如下函数(避免中文截取异常):
{:mb_substr($hot['title'],0,15,'UTF-8')}

{$hot.title|substr=0,10}


产品经理都很寂寞!
扫一扫来撩!!!
  微信公众号码:kelebl
  QQ群:497315816