3.4. CMS主题教程
CMS主题教程
快速创建主题
安装模块开发助手
模块开发助手可以极大效率的提高模块开发效率,在后台安装 模块开发助手 。
创建主题模块
使用 模块开发助手 可以快速的创建主题主题模块。
通过 系统管理 → 模块开发助手 → 新建CMS主题模块
可以完成主题模块的快速创建。
完成主题模块代码开发
第二步会根据填写的主题模块基本信息完成模块的创建,并且生成一些示例代码,通过修改和完善模块代码,完成模块的功能开发
主题模块的开发请参照 CmsThemeDemo,该示例中涵盖了主题模块开发的示例。
开发示例程序会不断更新,请随时查看最新的开发示例程序。
模板开发语法
主题使用了 blade 语法,具体语法可参照 视图开发
模板信息
站点基本信息
适用范围:任意页面
// 网站名称
{{ modstart_config('siteName') }}
// 网站Logo
{{ modstart_config('siteLogo') }}
// 网站副标题
{{ modstart_config('siteSlogan') }}
// 网站域名
{{ modstart_config('siteDomain') }}
// 网站关键词
{{ modstart_config('siteKeywords') }}
// 网站描述
{{ modstart_config('siteDescription') }}
// 备案编号
{{ modstart_config('siteBeian') }}
// 网站ICO
{{ modstart_config('siteFavIco') }}
// 网站主色调
{{ modstart_config('sitePrimaryColor') }}
// 网站主题
{{ modstart_config('siteTemplate') }}
CMS基本信息
适用范围:任意页面
// 企业名称
{{ modstart_config('Cms_CompanyName') }}
// 企业邮箱
{{ modstart_config('Cms_ContactEmail') }}
// 企业电话
{{ modstart_config('Cms_ContactPhone') }}
// 企业地址
{{ modstart_config('Cms_ContactAddress') }}
// 企业传真
{{ modstart_config('Cms_ContactFax') }}
// 联系人
{{ modstart_config('Cms_ContactContactPerson') }}
// 企业联系QQ
{{ modstart_config('Cms_ContactQQ') }}
// 企业介绍标题
{{ modstart_config('Cms_HomeInfoTitle') }}
// 企业介绍图片
{{ modstart_config('Cms_HomeInfoImage') }}
// 企业介绍说明
{{ modstart_config('Cms_HomeInfoContent') }}
导航
轮播图片
友情链接
站点地图
当前栏目
适用范围:在列表页或详情页使用
可用变量
变量 | 说明 |
---|---|
$cat['id'] |
栏目ID |
$cat['pid'] |
父级栏目ID |
$cat['title'] |
栏目标题 |
$cat['url'] |
栏目URL |
$cat['modelId'] |
栏目模型ID |
$cat['seoTitle'] |
SEO标题 |
$cat['seoDescription'] |
SEO描述 |
$cat['seoKeywords'] |
SEO关键词 |
$cat['icon'] |
栏目图标 |
$cat['cover'] |
栏目封面 |
$cat['subTitle'] |
栏目子标题 |
$cat['bannerBg'] |
栏目Banner背景 |
$cat['_model'] |
栏目模型 |
$cat['_model']['title'] |
栏目模型名称 |
$cat['_model']['name'] |
栏目模型标识 |
指定栏目
适用范围:任意页面
// 根据栏目ID获取栏目信息
<?php $cat = MCms::getCat(1); ?>
// 根据栏目URL获取栏目信息
<?php $cat = MCms::getCatByUrl('news'); ?>
可用变量
变量 | 说明 |
---|---|
$cat['id'] |
栏目ID |
$cat['pid'] |
父级栏目ID |
$cat['title'] |
栏目标题 |
$cat['url'] |
栏目URL |
$cat['modelId'] |
栏目模型ID |
$cat['seoTitle'] |
SEO标题 |
$cat['seoDescription'] |
SEO描述 |
$cat['seoKeywords'] |
SEO关键词 |
$cat['icon'] |
栏目图标 |
$cat['cover'] |
栏目封面 |
$cat['subTitle'] |
栏目子标题 |
$cat['bannerBg'] |
栏目Banner背景 |
$cat['_model'] |
栏目模型 |
$cat['_model']['title'] |
栏目模型名称 |
$cat['_model']['name'] |
栏目模型标识 |
内容列表
适用范围:列表页
循环输入内容列表
@foreach($records as $record)
<a href="{{$record['_url']}}">{{$record['title']}}</a>
@endforeach
可用变量
分页条
适用范围:列表页
输入分页条
<?php $pageHtml ?>
当前列表分页HTML数据
<div class="pages">
<a href="?page=1">1</a>
<span>2</span>
<a href="?page=1">3</a>
</div>
如果使用系统完整分页条,则以上样式名称在输出的HTML代码中都带,可以直接使用对应名称在自己的css中定义具体样式即可。
可用变量
变量 | 说明 |
---|---|
$page |
当前页数 |
$pageSize |
分页大小 |
$pageNextUrl |
下一页URL |
$pagePrevUrl |
上一页URL |
内容详情
适用范围:内容页
标题:{{ $record['title'] }}
内容:{{ $record['content'] }}
可用变量
指定内容
适用范围:任意页面
// 根据ID获取内容
<?php $record = \MCms::get(1); ?>
可用变量
留言本
适用范围:所有页面
<form action="{{ modstart_web_url('cms/form/submit',['cat'=>7]) }}"
method="post" data-ajax-form>
手机:<input type="text" name="phone" >
姓名:<input type="text" name="name" >
内容:<input type="text" name="content" >
<button type="submit">提交</button>
</form>
留言本使用了通用模型 id = 7 的内容模型,如过手动调整过内容模型,请自行修改代码。
表单详情
适用范围:表单页
@foreach($cat['_model']['_customFields'] as $customField)
@if($customField['fieldType']==\Module\Cms\Type\CmsModelFieldType::TEXT)
<!-- 文本字段 -->
<div>
{{$customField['title']}}
:
<input class="form" type="text" name="{{$customField['name']}}" />
</div>
@else
<!-- 其他字段 -->
@endif
@endforeach
具体可参照 通用表单模板
可用变量
变量 | 说明 |
---|---|
$customField['modelId'] |
模型ID |
$customField['title'] |
字段名 |
$customField['name'] |
字段 |
$customField['fieldType'] |
字段类型 |
$customField['fieldData'] |
字段数据 |
$customField['isRequired'] |
必填 |
$customField['placeholder'] |
输入提示 |
用户
适用范围:所有页面
@if(\Module\Member\Auth\MemberUser::isLogin())
欢迎,{{$_memberUser['username']}}
@else
请登录
@endif
可用变量
变量 | 说明 |
---|---|
$_memberUserId |
用户ID,可以判断该变量是否为空来判断用户是否登录 |
$_memberUser['id'] |
用户ID |
$_memberUser['username'] |
用户名 |
$_memberUser['avatar'] |
头像 |
可用地址
地址 | 说明 |
---|---|
/login |
登录页面 |
/register |
注册页面 |
/member |
用户中心 |
更多使用可参考 Member
字段显示
适用范围:任意页面
单行文本、多行文本、单选按钮、下拉选择、日期、日期时间、文件、视频、音频
{{ $record['_data']['xxx'] }}
标签显示
@foreach($record['_tag'] as $tag)
{{ $tag }}
@endforeach
多选按钮
@foreach($record['_data']['xxx'] as $item)
{{ $item }}
@endforeach
图片
<img src="{{ $record['_data']['xxx'] }}" />
多图
@foreach($record['_data']['xxx'] as $item)
<img src="{{ $item }}" />
@endforeach
富文本
<?php $record['_data']['xxx'] ?>
手机主题
主题默认主题为响应式主题。
电脑端主题默认路径为 module/Xxx/View/pc/cms/
中,如需要启用独立的手机端,只需要将所有视图文件按照该相同的结构放置在 module/Xxx/View/m/cms/
中即可。
API接口
CMS操作方法
获取内容 get
根据内容ID获取单条内容信息
<?php $record = \MCms::get($recordId); ?>
可用变量
列表 listCatByUrl
根据栏目URL获取内容列表(不包含副表字段),包含子栏目
<?php $records = \MCms::listCatByUrl($catUrl, $page = 1, $pageSize = 10, $option = []); ?>
可用变量
列表 listCat
根据栏目ID获取内容列表(不包含副表字段),包含子栏目
<?php $records = \MCms::listCat($catId, $page = 1, $pageSize = 10, $option = []); ?>
可用变量
列表 pageCat
根据栏目ID获取内容列表(不包含副表字段),包含子栏目
<?php $paginateData = \MCms::pageCat($catId, $page = 1, $pageSize = 10, $option = []) ?>
<?php $records = $paginateData['records']; ?>
<?php $total = $paginateData['total']; ?>
基本属性变量
变量 | 说明 |
---|---|
$total |
总页数 |
内容记录变量
列表 pageCatByUrl
根据栏目URL获取内容列表(不包含副表字段),包含子栏目
<?php $paginateData = \MCms::pageCatByUrl($catUrl, $page = 1, $pageSize = 10, $option = []); ?>
<?php $records = $paginateData['records']; ?>
<?php $total = $paginateData['total']; ?>
基本属性变量
变量 | 说明 |
---|---|
$total |
总页数 |
内容记录变量
列表 pageCatWithData
根据栏目ID获取内容列表(包含副表字段),不包含子栏目
<?php $paginateData = \MCms::pageCatWithData($catId, $page = 1, $pageSize = 10, $option = []); ?>
<?php $records = $paginateData['records']; ?>
<?php $total = $paginateData['total']; ?>
基本属性变量
变量 | 说明 |
---|---|
$total |
总页数 |
内容记录变量
列表 pageCatWithDataByUrl
根据栏目URL获取内容列表(包含副表字段),不包含子栏目
<?php $paginateData = \MCms::pageCatWithDataByUrl($catUrl, $page = 1, $pageSize = 10, $option = []); ?>
<?php $records = $paginateData['records']; ?>
<?php $total = $paginateData['total']; ?>
基本属性变量
变量 | 说明 |
---|---|
$total |
总页数 |
内容记录变量
列表 pageCatsWithData
根据多个栏目ID获取内容列表(包含副表字段),不包含子栏目,多个栏目必须为相同的模型
<?php $paginateData = \MCms::pageCatsWithData($catIds, $page = 1, $pageSize = 10, $option = []); ?>
<?php $records = $paginateData['records']; ?>
<?php $total = $paginateData['total']; ?>
基本属性变量
变量 | 说明 |
---|---|
$total |
总页数 |
内容记录变量
列表 pageCatWithDataByUrl
根据多个栏目URL获取列表(包含副表字段),不包含子栏目,多个栏目必须为相同的模型
<?php $paginateData = \MCms::pageCatsWithDataByUrl($catUrls, $page = 1, $pageSize = 10, $option = []); ?>
<?php $records = $paginateData['records']; ?>
<?php $total = $paginateData['total']; ?>
基本属性变量
变量 | 说明 |
---|---|
$total |
总页数 |
内容记录变量
列表 latestCat
根据栏目ID获取最新内容列表(不包含副表字段),包含子目录,
<?php $records = \MCms::latestCat($catId, $limit = 10); ?>
可用变量
列表条件检索
列表带查询条件时,需要自定义 $option
参数,对所有列表获取方法均适用
// 精确匹配
$option = [
'where' => [
'title' => '阿里巴巴',
'source' => '网络',
],
];
// 复杂匹配
$option = [
'whereOperate'=>[
// 模糊匹配
['title','like','%阿里巴巴%'],
// 范围
['postTime','>=','2021-01-01 00:00:00'],
]
];
// 自定义排序
$option = [
'order'=>[
['id','desc']
]
];
// 列表默认按照以下排序
$option = [
'order'=>[
['isTop', 'desc'],
['isRecommend', 'desc'],
['postTime', 'desc'],
]
];
栏目上一条内容 prevOne
获取上一条记录
<?php $record = \MCms::prevOne($catId, $recordId); ?>
可用变量
栏目下一条内容 nextOne
获取下一条记录
<?php $record = \MCms::nextOne($catId, $recordId); ?>
可用变量
推荐文章: