一、数据准备
1.为防止影响当前模版,建议先删除系统默认模版数据。删除顺序为:
2.为方便站点完成后信息的统一管理和权限分配,这里不太建议在开发的过程中使用配置标签。因为配置标签的内容需要在插件管理中进行设置,一般比较适用于,一次设置后基本不会发生改变的值或者参数,比如模版名称,首页访问路径等等。所以页面中读取的内容不建议使用配置标签。
{cms:config name="xxxx"}
二、区块标签【block、blocklist】
1.使用场景:
(1)站点通用内容,如:网站名称,网站底部信息(备案信息,联系电话,logo等),子页面的banner;
(2)每个页面独有内容,如:主页的轮播图;
(3)页面上的补充内容,如:不同列表页面需要显示的内容或者图片。
2.后台操作:
(1)CMS管理→区块管理→添加
类型:
名称:
标题、图片、链接、内容:
3.标签使用:
(1)block标签,在页面中使用时通过id调用或者通过名称调用(名称最好能保持唯一)。
{cms:block id="标签ID" /}
{cms:block name="名称" /}
(2)blocklist标签,在页面中使用时通过名称调用,如果为列表内容时需要名称保持一致,如果为单标签需要获取多种内容时名称最好保持唯一。
{cms:blocklist id="block" name="指定区块的名称" row="显示行数" cache="缓存时间,调试阶段建议设置为0"} {$block.title}//标题 {$block.id}//id {$block.content}//内容 {$block.image}//图片 {$block.url}//链接{/cms:blocklist}
标签参数
三、单页标签【page】
1.使用场景:
(1)单页文章,如:临时的说明页,联系我们等;
(2)不需要文章列表的文章,如:导航栏文章等;
2.后台操作:
(1)CMS管理→单页管理→添加
类型:
标题、标志、图片、内容、关键字、描述:
自定义: /p/自定义名称
视图模版:
权重:
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管理→模型管理→添加
(2)字段信息:
模型名称:
表名:
栏目模版:
列表模版:
详情页模版:
(3)自定义模型字段信息,如果文章中的基础信息无法满足文章详情的需求,可以在模型管理中自定义缺失的字段信息;
(4)新增栏目;CMS管理→栏目管理→添加;
(5)字段信息
类型:
模型ID、上级栏目、名称、图片、关键字、描述、栏目模版:
自定义名称:
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}
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中的字段名称
五、文章详情标签archives
标签在文章详情中的使用和上面的提到的单标签的使用方法一致,如果文章发布在的栏目类型为:栏目或者列表可能纯在自定义字段的情况,自定义字段的调用方式和单标签的使用方式一致,调用名称查看新建模型时的数据库字段名称。