FastAdmin CMS插件 标签使用说明
前言
功能特性
(摘录自官方CMS介绍页。)
基于FastAdmin和ThinkPHP5进行开发的CMS内容管理系统,拥有PC版和小程序版本,提供CMS全部源代码和CMS小程序全部源代码
所有源代码无加密、无后门。一次购买永久免费升级使用。
1. 模版基础
1.1 目录与结构说明
插件根目录 /view下的文件为可使用的模板文件,您也可以自己建立目录来设计新的模板。
/view [模板目录] │ ├─default -------------------[默认模板] ├─├─common ------------------[公共模版块] ├─│ comment.html ----------[评论模版] ├─│ downloaditem.html -----[] ├─│ fields.html -----------[] ├─│ index_list.html -------[] ├─│ item_download.html ----[] ├─│ item_news.html --------[] ├─│ item_product.html -----[] ├─│ item.html -------------[] ├─│ layout.html -----------[] ├─│ sidebar.html ----------[] │ channel_download.html ---[付费阅读栏目首页] │ channel_news.html -------[新闻栏目首页] │ channel_product.html ----[产品栏目首页] │ channel.html ------------[栏目首页] │ diyform.html ------------[自定义表单] │ index.html --------------[网站首页] │ list_download.html ------[付费阅读列表页] │ list_news.html ----------[新闻列表页] │ list_product.html -------[产品列表页] │ list.html ---------------[列表页] │ page.html ---------------[单页] │ search.html -------------[搜索页] │ show_download.html ------[付费阅读内容页] │ show_news.html ----------[新闻内容页] │ show_product.html -------[产品内容页] │ show.html ---------------[内容页] │ tags.html ---------------[标签页]复制
1.2 标签库
在CMS插件中的前端视图模板中大量使用了自定义标签,我们在修改或制作模板的时候,可以方便快捷的使用自定义标签来调用我们相关的数据。
(ThinkPHP默认标签的详细用法请参考完全开发手册)
标签库位于/addons/cms/taglib/Cms.php
文件,我们可以看到标签库有定义可调用的标签和属性,以下是自带的标签
'channel', 'archives', 'tags', 'block', 'config', 'page', 'diyform', 'nav', 'execute', 'query', 'prevnext', 'blocklist', 'commentlist', 'breadcrumb' , 'channellist', 'arclist', 'tagslist', 'pagefilter', 'pageorder', 'pagelist', 'spagelist', 'spageinfo', 'pageinfo', 'commentinfo',复制
1.3 基础标签格式
基础标签格式为系统内容所有的数据调用格式,请牢记这些格式。此处只讲解格式,具体调用请查看具体的标签调用文档。
1.3.1 数据调用标签
本标签用于调用CMS标签库中定义的数据。
标签体 - {} 标签内容写入英文大括号内
循环前缀 - cms: CMS插件必须的前缀
数据名 - 标签库中定义的数据名
变量名 - id="标签名" 循环中所要使用的变量名
属性值 - 为标签调用的参数,可以多个使用,请用空格分开多个属性,值如果为字符串时请添加双引号
示例:(仅演示标签使用格式,具体标签的使用,请查看对应章节)
<!-- 这是栏目循环的调用 -->{cms:channellist id="nav" type="top" condition="1=isnav" } {$nav.name} {/cms:channellist}<!-- 这是导航的调用 -->{cms:nav maxlevel="3" cache="0" /}复制
1.3.2 变量标签
变量仍然由"{}"英文大括号包围,内部则是$开头的变量名,多维变量用“.”英文句号分割。
<!-- 模版输出 -->{$nav.name}<!-- PHP原生输出 --><?php echo $nav['name']; ?>复制
也可以使用原生php自定义变量,在模版中输出,如:
<!-- PHP代码 --><?php$code = 123;$image = array( 'url' => 'http://www.baidu.com/img/baidu.gif', 'color' => 'red', 'size' => '50', );?><!-- 模版输出 -->{$code} {$image.color}复制
<!-- 输出结果 -->123 red复制
1.4 系统信息调用
1.4.1 FastAdmin框架系统信息
FastAdmin框架中的系统信息变量,在系统配置中可以定义他们的值。对应 application/extra/site.php
文件中定义的。
'name', 'beian', 'cdnurl', 'version', 'timezone', 'forbiddenip', 'languages' => array ( 'backend', 'frontend', ), 'fixedpage', 'categorytype' => array ( 'default', 'page', 'article', 'test', ), 'configgroup' => array ( 'basic', 'email', 'dictionary', 'user', 'example', ), 'mail_type', 'mail_smtp_host', 'mail_smtp_port', 'mail_smtp_user', 'mail_smtp_pass', 'mail_verify_type', 'mail_from',复制
调用方法如下
<!-- 格式:{$site.变量名} -->{$site.name}<!-- 注意:数组类变量不能直接调用 {$site.languages}会报错 --><?php print_r($site['languages']); ?>复制
1.4.2 CMS配置变量
CMS插件中也定义了一些变量,在插件配置中可以定义具体的值。对应addons/cms/config.php
'sitename' 'title' 'keywords' 'description' 'theme' 'qrcode' 'wxapp' 'donateimage' 'default_archives_img' 'default_channel_img' 'default_block_img' 'default_page_img' 'domain' 'rewrite' => array (size=8) 'index/index' 'archives/index' 'tags/index' 'page/index' 'search/index' 'channel/index' 'diyform/index' 'wxappid' 'wxappsecret' 'apikey' 'archiveseditmode' 'channelallocate' 'conactqq' 'autolinks' => array (size=2) '服务器' '阿里云'复制
调用方法如下
<!-- 格式:{$config.变量名} -->{$config.sitename}<!-- 注意:数组类变量不能直接调用 {$config.autolinks}会报错 --><?php print_r($config['autolinks']); ?>复制
1.4.3 ThinkPHP原生变量
当然FastAdmin也支持原生变量的输出。
支持输出
$_SERVER
、$_ENV
、$_POST
、$_GET
、$_REQUEST
、$_SESSION
和$_COOKIE
变量。调用示例:
{$Think.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量 {$Think.session.user_id} // 输出$_SESSION['user_id']变量 {$Think.get.pageNumber} // 输出$_GET['pageNumber']变量 {$Think.cookie.name} // 输出$_COOKIE['name']变量复制
还可以输出常量
{$Think.const.APP_PATH}复制
或者直接使用
{$Think.APP_PATH}复制
输出配置参数使用:
{$Think.config.default_module} {$Think.config.default_controller}复制
输出语言变量可以使用:
{$Think.lang.page_error} {$Think.lang.var_error}复制
1.5 请求参数的输出
同样模板也支持直接输出
Request
请求对象的方法参数。格式:$Request.方法名.参数
调用示例:
{$Request.get.id} {$Request.param.name}复制
以
$Request.
开头的变量输出会认为是系统Request请求对象的参数输出。支持
Request
类的大部分方法,但只支持方法的第一个参数。下面都是有效的输出:
// 调用Request对象的get方法 传入参数为id{$Request.get.id}// 调用Request对象的param方法 传入参数为name{$Request.param.name}// 调用Request对象的param方法 传入参数为user.nickname{$Request.param.user.nickname}// 调用Request对象的root方法{$Request.root}// 调用Request对象的root方法,并且传入参数true{$Request.root.true}// 调用Request对象的path方法{$Request.path}// 调用Request对象的module方法{$Request.module}// 调用Request对象的controller方法{$Request.controller}// 调用Request对象的action方法{$Request.action}// 调用Request对象的ext方法{$Request.ext}// 调用Request对象的host方法{$Request.host}// 调用Request对象的ip方法{$Request.ip}// 调用Request对象的header方法{$Request.header.accept-encoding}复制
1.6 判断与循环
1.6.1 比较标签
用于对变量的简单比较,如相等、不等、大于、小于等比较。基本格式如下:
{比较标签 name="变量" value="值"} 内容 {else/} 内容 {/比较标签}复制
系统支持的比较标签以及所表示的含义分别是:
标签 | 含义 |
---|---|
eq或者 equal | 等于 |
neq 或者notequal | 不等于 |
gt | 大于 |
egt | 大于等于 |
lt | 小于 |
elt | 小于等于 |
heq | 恒等于 |
nheq | 不恒等于 |
他们的用法基本是一致的,区别在于判断的条件不同。
1.6.2 IF判断
由于if标签的condition属性里面基本上使用的是php语法,尽可能使用比较标签和Switch标签会更加简洁,原则上来说,能够用switch和比较标签解决的尽量不用if标签完成。因为switch和比较标签可以使用变量调节器和系统变量。如果某些特殊的要求下面,IF标签仍然无法满足要求的话,可以使用原生php代码或者PHP标签来直接书写代码。
基本用法示例:
{if condition="($name == 1) OR ($name > 100) "} value1 {elseif condition="$name eq 2"/}value2 {else /} value3 {/if}复制
除此之外,我们可以在condition属性里面使用php代码,例如:
{if condition="strtoupper($user['name']) neq 'THINKPHP'"}ThinkPHP {else /} other Framework {/if}复制
详细用法请参考ThinkPHP5完全开发手册中模版部分。
1.6.3 SWITCH标签
用法:
{switch name="变量" } {case value="值1" break="0或1"}输出内容1{/case} {case value="值2"}输出内容2{/case} {default /}默认情况 {/switch}复制
使用方法如下:
{switch name="User.level"} {case value="1"}value1{/case} {case value="2"}value2{/case} {default /}default{/switch}复制
其中name属性可以使用函数以及系统变量,例如:
{switch name="Think.get.userId|abs"} {case value="1"}admin{/case} {default /}default{/switch}复制
1.6.4 范围判断
范围判断标签包括in notin between notbetween四个标签,都用于判断变量是否中某个范围。
IN和NOTIN
用法: 假设我们中控制器中给id赋值为1:
$id = 1;$this->assign('id',$id);复制
我们可以使用in标签来判断模板变量是否在某个范围内,例如:
{in name="id" value="1,2,3"}id在范围内 {/in}复制
BETWEEN 和 NOTBETWEEN
可以使用between标签来判断变量是否在某个区间范围内,可以使用:
{between name="id" value="1,10"} 输出内容1 {/between}复制
同样,也可以使用notbetween标签来判断变量不在某个范围内:
{notbetween name="id" value="1,10"} 输出内容2 {/notbetween}复制
也可以使用else标签把两个用法合并,例如:
{between name="id" value="1,10"} 输出内容1 {else/} 输出内容2 {/between}复制
RANGE
也可以直接使用range标签,替换前面的判断用法:
{range name="id" value="1,2,3" type="in"} 输出内容1{/range}复制
其中type属性的值可以用in/notin/between/notbetween,其它属性的用法和IN或者BETWEEN一致。
1.6.5 PRESENT NOTPRESENT标签
present标签用于判断某个变量是否已经定义,用法:
{present name="name"} name已经赋值 {else /} name还没有赋值 {/present} {notpresent name="name"} name还没有赋值 {/notpresent}复制
1.6.6 EMPTY NOTEMPTY 标签
empty标签用于判断某个变量是否为空,用法:
{empty name="name"} name为空 {else /} name不为空 {/empty} {notempty name="name"} name不为空 {/notempty}复制
1.6.7 DEFINED 标签
DEFINED标签用于判断某个常量是否有定义,用法如下:
{defined name="NAME"} NAME常量已经定义 {else /} NAME常量未定义 {/defined} {notdefined name="NAME"} NAME常量未定义 {/notdefined}复制
name属性的值要注意严格大小写
1.7 数据函数处理
我们往往需要对模板输出变量使用函数,可以使用:
{$data.name|md5} 复制
编译后的结果是:
<?php echo (md5($data['name'])); ?>复制
如果函数有多个参数需要调用,则使用:
{$create_time|date="y-m-d",###}复制
表示date函数传入两个参数,每个参数用逗号分割,这里第一个参数是y-m-d
,第二个参数是前面要输出的create_time
变量,因为该变量是第二个参数,因此需要用###标识变量位置,编译后的结果是:
<?php echo (date("y-m-d",$create_time)); ?>复制
如果前面输出的变量在后面定义的函数的第一个参数,则可以直接使用:
{$data.name|substr=0,3}复制
表示输出
<?php echo (substr($data['name'],0,3)); ?>复制
虽然也可以使用:
{$data.name|substr=###,0,3}复制
但完全没用这个必要。
还可以支持多个函数过滤,多个函数之间用“|”分割即可,例如:
{$name|md5|strtoupper|substr=0,3}复制
编译后的结果是:
<?php echo (substr(strtoupper(md5($name)),0,3)); ?>复制
函数会按照从左到右的顺序依次调用。
如果你觉得这样写起来比较麻烦,也可以直接这样写:
{:substr(strtoupper(md5($name)),0,3)}复制
变量输出使用的函数可以支持内置的PHP函数或者用户自定义函数,甚至是静态方法。
1.8 模版引入
传统方式的导入外部JS
和CSS
文件的方法是直接在模板文件使用:
<script type='text/javascript' src='/static/js/common.js'><link rel="stylesheet" type="text/css" href="/static/css/style.css" />复制
系统提供了专门的标签来简化上面的导入:
{load href="/static/js/common.js" /} {load href="/static/css/style.css" /}复制
并且支持同时加载多个资源文件,例如:
{load href="/static/js/common.js,/static/css/style.css" /}复制
系统还提供了两个标签别名js
和css
用法和load
一致,例如:
{js href="/static/js/common.js" /} {css href="/static/css/style.css" /}复制
2. 模版页面标签
2.1 栏目列表页
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}复制
默认模版中的应用代码:
{cms:channellist id="nav" type="top" condition="1=isnav"} <!--判断是否有子级或高亮当前栏目--> <li class="{if $nav.has_child}dropdown{/if} {if $nav->is_active} active{/if}"> <a href="{$nav.url}" {if $nav.has_child} data-toggle="dropdown" {/if}>{$nav.name}{if $nav.has_child} <b class="caret"></b>{/if}</a> <ul class="dropdown-menu" role="menu"> {cms:channellist id="sub" type="son" typeid="$nav['id']" condition="1=isnav"} <li><a href="{$sub.url}">{$sub.name}</a></li> {/cms:channellist} </ul> </li> {/cms:channellist}复制
2.2 文档列表页
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}复制
默认模版中的应用代码(栏目列表与内容列表):
{cms:channellist id="channel" type="son" typeid="$__CHANNEL__.id"} <div class="col-xs-12 col-sm-6"> <h3>{$channel.textlink} <em><a href="{$channel.url}">{:__('More')}</a></em></h3> {cms:arclist id="row" channel="$channel.id" limit="0,1"} <div class="media"> <div class="media-left"> <a href="{$row.url}" {if $row.style}style="{$row.style_text}"{/if}> <div class="embed-responsive embed-responsive-4by3 img-zoom"> <img class="embed-responsive-item media-object" width="64" height="64" src="{$row.image}"> </div> </a> </div> <div class="media-body"> <h4 class="media-heading">{$row.textlink}</h4> <p>{$row.description}</p> </div> </div> {/cms:arclist} <ul class="list-unstyled inner-list"> {cms:arclist id="row" channel="$channel.id" limit="1,5"} <li> <a href="{$row.url}" {if $row.style}style="{$row.style_text}"{/if}>{$row.title}</a> <span class="pull-right">{$row.publishtime|date='m-d',###}</span> </li> {/cms:arclist} </ul> </div> {/cms:channellist}复制
2.3 栏目详情标签
channel
标签介绍:用于调用栏目的字段信息
适用范围:频道页、列表页、详情页
调用示例:
//栏目ID{cms:channel name="id" /}//栏目名称{cms:channel name="name" /}//栏目图片{cms:channel name="image" /}复制
2.4 文档详情标签
archives
标签介绍:用于显示文档主表和副表字段信息
适用范围:详情页
调用示例:
//文档查看次数{cms:archives name="views" /}//文档发布时间{cms:archives name="createtime|date='d',###" /}//文档内容{cms:archives name="content" /}//调用副表字段 example1{cms:archives name="example1" /}复制
2.5 单页详情标签
page
标签介绍:用于调用单调的字段信息
适用范围:单页详情页
调用示例:
//调用单页标题{cms:page name="title" /}//调用单页内容{cms:page name="content" /}复制
2.5 Tag标签列表页
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}复制
默认模版中的应用代码:
{cms:tagslist id="tag" orderby="rand" limit="30"} <a href="{$tag.url}" class="tag"> <span>{$tag.name}</span></a> {/cms:tagslist}复制
2.6 Tag标签详情页
tags
标签介绍:用于显示标签字段信息
适用范围:标签页
调用示例:
//标签名称{cms:tags name="name" /}//标签文档数{cms:tags name="archives" /}复制
2.7 区块列表标签
blocklist
标签介绍:用于调用CMS内的区块列表,常用于幻灯片调用
适用范围:全部
标签参数:
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}复制
2.8 区块详情标签
block
标签介绍:用于调用显示区块信息,自动判断区块内容来显示图片或文本链接
适用范围:全部
调用示例:
//通过区块ID来调用显示区块{cms:block id="1" /}//通过名称Name来调用显示区块{cms:block name="bannerad" /}复制
2.9 评论标签
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}复制
2.10 评论信息标签
commentinfo
标签介绍:用于在文档页显示评论分页信息
适用范围:文档详情页
标签参数:
type:保留参数复制
调用示例:
{cms:commentinfo type="full" /}复制
3. 列表页专属标签
3.1 列表标签
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}复制
3.2 列表筛选标签
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}复制
3.3 列表排序标签
pageorder
标签介绍:用于在列表页显示排序信息的列表
适用范围:列表页
标签参数:
id:循环变量名 key:循环索引名empty:为空时显示的信息 mod:取模基数,常用于控制多少条数据后换行、变色等复制
调用示例:
{cms:pageorder id="order"} //是否当前选中项 {$order.active?'active':''} //排序链接 {$order.url} //排序名称 {$order.title} {/cms:pageorder}复制
3.4 列表分页标签
pageinfo
标签介绍:用于在列表页显示分页信息
适用范围:列表页
标签参数:
type:保留参数复制
调用示例:
{cms:pageinfo type="full" /}复制
4. 其他标签
4.1 配置标签
config
标签介绍:用于调用框架的配置信息
适用范围:全部
调用示例:
//调用站点名称{cms:config name="site.name" /}//调用备案信息{cms:config name="site.beian" /}//调用当前调试状态{cms:config name="app_debug" /}复制
4.2 面包屑标签
breadcrumb
标签介绍:用于调用当前文档或栏目的面板屑
适用范围:全部
标签参数:
id:循环变量名 key:循环索引名empty:为空时显示的信息 mod:取模基数,常用于控制多少条数据后换行、变色等复制
调用示例:
{cms:breadcrumb id="item"} //链接文字 {$item.name} //链接地址 {$item.url} {/cms:breadcrumb}复制
4.3 导航栏标签
nav
标签介绍:用于调用导航栏信息
适用范围:全部
标签参数:
maxlevel:最大调用的层级condition:筛选条件,可使用SQL字段筛选 cache:缓存时长,为0则不缓存复制
调用示例:
//控制最大层级为3层的导航栏列表,且不缓存{cms:nav maxlevel="3" cache="0" /}//调用模型为1的第一层栏目列表{cms:nav maxlevel="1" condition="model_id=1" /}复制
4.4 上下页标签
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}复制
5 常用标签实例速查【持续更新,欢迎留言】
栏目导航
<!--如果你需要自定义NAV,可使用channellist标签来完成,这里只设置了2级,如果显示无限级,请使用cms:nav标签-->{cms:channellist id="nav" type="top" condition="1=isnav"}<!--判断是否有子级或高亮当前栏目--><li class="{if $nav.has_child}dropdown{/if} {if $nav->is_active} active{/if}"> <a href="{$nav.url}" {if $nav.has_child} data-toggle="dropdown" {/if}>{$nav.name}{if $nav.has_child} <b class="caret"></b>{/if}</a> <ul class="dropdown-menu" role="menu"> {cms:channellist id="sub" type="son" typeid="$nav['id']" condition="1=isnav"} <li><a href="{$sub.url}">{$sub.name}</a></li> {/cms:channellist} </ul></li>{/cms:channellist}复制
栏目及内容列表
{cms:channellist id="channel" type="son" typeid="$__CHANNEL__.id"} <div class="col-xs-12 col-sm-6"> <h3>{$channel.textlink} <em><a href="{$channel.url}">{:__('More')}</a></em></h3> {cms:arclist id="row" channel="$channel.id" limit="0,1"} <div class="media"> <div class="media-left"> <a href="{$row.url}" {if $row.style}style="{$row.style_text}"{/if}> <div class="embed-responsive embed-responsive-4by3 img-zoom"> <img class="embed-responsive-item media-object" width="64" height="64" src="{$row.image}"> </div> </a> </div> <div class="media-body"> <h4 class="media-heading">{$row.textlink}</h4> <p>{$row.description}</p> </div> </div> {/cms:arclist} <ul class="list-unstyled inner-list"> {cms:arclist id="row" channel="$channel.id" limit="1,5"} <li> <a href="{$row.url}" {if $row.style}style="{$row.style_text}"{/if}>{$row.title}</a> <span class="pull-right">{$row.publishtime|date='m-d',###}</span> </li> {/cms:arclist} </ul> </div> {/cms:channellist}
发表评论 取消回复