FastAdmin-CMS模版制作(5)-标签使用
一、数据准备
1.为防止影响当前模版,建议先删除系统默认模版数据。删除顺序为:
(1)内容管理中删除所有文章;
(2)栏目管理中删除所有栏目;
(3)模型管理中删除所有模型;
(4)区块管理中删除区块;
(5)单页管理中删除单页;
2.为方便站点完成后信息的统一管理和权限分配,这里不太建议在开发的过程中使用配置标签。因为配置标签的内容需要在插件管理中进行设置,一般比较适用于,一次设置后基本不会发生改变的值或者参数,比如模版名称,首页访问路径等等。所以页面中读取的内容不建议使用配置标签。
{cms:config name="xxxx"}
二、区块标签【block、blocklist】
1.使用场景:
(1)站点通用内容,如:网站名称,网站底部信息(备案信息,联系电话,logo等),子页面的banner;
(2)每个页面独有内容,如:主页的轮播图;
(3)页面上的补充内容,如:不同列表页面需要显示的内容或者图片。
2.后台操作:
(1)CMS管理→区块管理→添加
![](https://img.haomeiwen.com/i2672497/ce03a3c0baf9d888.png)
(2)字段信息:
类型:建议使用中文,简单的理解为对区块管理的分类,根据页面或者信息的展示方式来进行定义;
名称:建议使用英文,页面模版中标签调用的名称,可以重复组成列表信息进行调用;
标题、图片、链接、内容:这四个字段为自定义内容部分根据需要进行使用,可以只使用一个或者使用多个,具体看信息需求,当只填写其中一个时可以直接通过block单标签进行调用,系统会自动识别已经填写的单个内容。当使用多个时需要通过blocklist标签进行调用。
![](https://img.haomeiwen.com/i2672497/b6d71fad1e210c92.png)
3.标签使用:
(1)block标签,在页面中使用时通过id调用或者通过名称调用(名称最好能保持唯一)。
{cms:block id="标签ID" /}
![](https://img.haomeiwen.com/i2672497/fcc257f5edad2838.png)
{cms:block name="名称" /}
![](https://img.haomeiwen.com/i2672497/923bc4e809dd6b21.png)
(2)blocklist标签,在页面中使用时通过名称调用,如果为列表内容时需要名称保持一致,如果为单标签需要获取多种内容时名称最好保持唯一。
{cms:blocklist id="block" name="指定区块的名称" row="显示行数" cache="缓存时间,调试阶段建议设置为0"}
{$block.title}//标题
{$block.id}//id
{$block.content}//内容
{$block.image}//图片
{$block.url}//链接
{/cms:blocklist}
标签参数
id:循环变量名
name:指定区块的名称
row:行数
cache:缓存时间,为0则不缓存,为true则永久缓存
key:循环索引名
limit:行数
empty:为空时显示的信息
mod:取模基数,常用于控制多少条数据后换行、变色等
orderby:排序字段,支持id,name,createtime,updatetime,rand(随机)
orderway:排序方式,asc=正序,desc=倒序
imgwidth:图片宽度
imgheight:图片高度
condition:筛选条件,可使用SQL字段筛选
三、单页标签【page】
1.使用场景:
(1)单页文章,如:临时的说明页,联系我们等;
(2)不需要文章列表的文章,如:导航栏文章等;
2.后台操作:
(1)CMS管理→单页管理→添加
![](https://img.haomeiwen.com/i2672497/f3b19733418145b3.png)
(2)字段信息:
类型:建议使用中文,简单的理解为对单页管理的分类,根据页面或者信息的展示方式来进行定义;
标题、标志、图片、内容、关键字、描述:为标签内容,自定义输入即可;
自定义:单页文章访问时的路劲文件名称,不能重复,页面的相对路劲为:/p/自定义名称;
视图模版:模版文件名称必须以page开头,直接下拉选择对应的模版即可;
权重:排序顺序;
![](https://img.haomeiwen.com/i2672497/4b7bb3912c589a3f.png)
(3)单页模版进行添加之后直接在列表页点击Url即可访问;
![](https://img.haomeiwen.com/i2672497/36353e6d2f25c9fb.png)
3.标签使用:
(1)单页标签在对应的模版中使用时,直接用标签调用对应信息的名称即可。调用时的字段名称可以直接在数据表fa_cms_page中查看;
{cms:page name="title" /} //标题
{cms:page name="content" /} //内容
{cms:page name="image" /} //图片
{cms:page name="keywords" /} //关键字
{cms:page name="description" /} //描述
CREATE TABLE `fa_cms_page` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`category_id` int(10) NOT NULL DEFAULT '0' COMMENT '分类ID',
`type` varchar(50) NOT NULL DEFAULT '' COMMENT '类型',
`title` varchar(50) NOT NULL DEFAULT '' COMMENT '标题',
`keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '关键字',
`description` varchar(255) NOT NULL DEFAULT '' COMMENT '描述',
`flag` set('hot','index','recommend') NOT NULL DEFAULT '' COMMENT '标志',
`image` varchar(255) NOT NULL DEFAULT '' COMMENT '头像',
`content` text COMMENT '内容',
`icon` varchar(50) NOT NULL DEFAULT '' COMMENT '图标',
`views` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '点击',
`likes` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '点赞',
`dislikes` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '点踩',
`comments` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '评论',
`diyname` varchar(50) NOT NULL DEFAULT '' COMMENT '自定义',
`showtpl` varchar(50) NOT NULL DEFAULT '' COMMENT '视图模板',
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
`updatetime` int(10) DEFAULT NULL COMMENT '更新时间',
`weigh` int(10) NOT NULL DEFAULT '0' COMMENT '权重',
`status` varchar(30) NOT NULL DEFAULT '' COMMENT '状态',
PRIMARY KEY (`id`),
KEY `type` (`type`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='单页表';
(2)代码实例:
<aside id="fh5co-hero" class="js-fullheight">
<div class="flexslider js-fullheight">
<ul class="slides">
<li>
<div class="row">
<div class="col-md-12 js-fullheight">
<img class="js-fullheight" src="{cms:page name='image'/}" style="object-fit:cover"/>
</div>
</div>
</li>
</ul>
</div>
</aside>
四、栏目标签【channel、channellist】
1.使用场景:
(1)网站导航,可以实现站点导航的动态新增和删除;
(2)文章列表页;
(3)文章详情页;
2.后台操作:
(1)根据文章需求添加栏目模型,CMS管理→模型管理→添加
![](https://img.haomeiwen.com/i2672497/6a9b228d1bdf3adf.png)
(2)字段信息:
![](https://img.haomeiwen.com/i2672497/b4062192c790a525.png)
模型名称:根据需求自定义即可,建议和栏目名称保持一致;
表名:建议使用cms_addon_[栏目名称英文];
栏目模版:模版文件必须以channel为开头的命名方式,如果不需要栏目模版可以不选;
列表模版:模版文件必须以list为开头的命名方式,列表模版必选;
详情页模版:模版文件必须以show为开头的命名方式,如果不需要详情模版可以不选;
(3)自定义模型字段信息,如果文章中的基础信息无法满足文章详情的需求,可以在模型管理中自定义缺失的字段信息;
![](https://img.haomeiwen.com/i2672497/350458f03b162c9d.png)
(4)新增栏目;CMS管理→栏目管理→添加;
![](https://img.haomeiwen.com/i2672497/6171f1be754ef9ce.png)
(5)字段信息
![](https://img.haomeiwen.com/i2672497/3830b025295db0b9.png)
类型:栏目,列表,外部链接,根据自己的需求进行选择即可,如果站点上有单页导航可以选择外部链接;
模型ID、上级栏目、名称、图片、关键字、描述、栏目模版:根据自己的需求进行选择,填写;
自定义名称:栏目的访问路劲,建议使用栏目名称的英文,相对路劲为:/c/自定义名称;
3.标签使用:
(1)在导航栏中的使用;
<nav id="fh5co-main-menu" role="navigation">
<ul>
{cms:channellist id="nav" type="top" condition="1=isnav" cache="0"}
<!-- 判断是否有子栏目,如果有子栏目则采用二级菜单,如果没有则采用一级菜单 -->
{if $nav.has_child}//判断当前一级栏目下是否有子栏目
<li class="znav">
<a class="fist-menu {if $nav->is_active} fh5co-active {/if}" href="#">{$nav.name}</a>//判断当前栏目是否被选中
<ul class="znav-list">
{cms:channellist id="item" type="son" typeid="$nav['id']" condition="1=isnav" cache="0"}
<li><a class="fist-menu {if $item->is_active} fh5co-active {/if}" href="{$item.url}">{$item.name}</a></li>
{/cms:channellist}
</ul>
</li>
{else/}
<li><a class="fist-menu {if $nav->is_active} fh5co-active {/if}" href="{$nav.url}">{$nav.name}</a></li>
{/if}
{/cms:channellist}
</ul>
</nav>
官方示例:
{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}
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集合
(2)在文章页、列表页、频道页的使用,直接在文章页中可调用单标签channel
{cms:channel name="id" /}//栏目ID
{cms:channel name="name" /}//栏目名称
{cms:channel name="image" /}//栏目图片
调用名称可以参考栏目表fa_cms_channel中的字段名称
CREATE TABLE
fa_cms_channel
(
id
int(10) unsigned NOT NULL AUTO_INCREMENT,
type
enum('channel','page','link','list') NOT NULL COMMENT '类型',
model_id
int(10) unsigned NOT NULL DEFAULT '0' COMMENT '模型ID',
parent_id
int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父ID',
name
varchar(30) NOT NULL DEFAULT '' COMMENT '名称',
image
varchar(100) NOT NULL DEFAULT '' COMMENT '图片',
flag
set('hot','new','recommend') DEFAULT '' COMMENT '标志',
keywords
varchar(255) NOT NULL DEFAULT '' COMMENT '关键字',
description
varchar(255) NOT NULL DEFAULT '' COMMENT '描述',
diyname
varchar(30) NOT NULL DEFAULT '' COMMENT '自定义名称',
outlink
varchar(255) NOT NULL DEFAULT '' COMMENT '外部链接',
items
mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '文章数量',
weigh
int(10) NOT NULL DEFAULT '0' COMMENT '权重',
channeltpl
varchar(100) NOT NULL DEFAULT '' COMMENT '栏目页模板',
listtpl
varchar(100) NOT NULL DEFAULT '' COMMENT '列表页模板',
showtpl
varchar(100) NOT NULL DEFAULT '' COMMENT '详情页模板',
pagesize
smallint(5) NOT NULL DEFAULT '0' COMMENT '分页大小',
iscontribute
tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否可投稿',
isnav
tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否导航显示',
createtime
int(10) DEFAULT NULL COMMENT '创建时间',
updatetime
int(10) DEFAULT NULL COMMENT '更新时间',
status
enum('normal','hidden') NOT NULL DEFAULT 'normal' COMMENT '状态',
PRIMARY KEY (id
),
UNIQUE KEYdiyname
(diyname
),
KEYweigh
(weigh
,id
),
KEYparent_id
(parent_id
)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='栏目表';
五、文章详情标签archives
标签在文章详情中的使用和上面的提到的单标签的使用方法一致,如果文章发布在的栏目类型为:栏目或者列表可能纯在自定义字段的情况,自定义字段的调用方式和单标签的使用方式一致,调用名称查看新建模型时的数据库字段名称。