
在添加首页模板配置文件中我们给首页模板public/themes/quick_start/portal/index.html添加了一个模板配置文件,这个配置文件主要用于描述这个模板文件,比如描述它的模板文件名称,对应的操作,及有哪些模板变量或控件。
模板配置文件和模板文件名是同名的,对于一个模板文件一定要小写下划线,如index.html, list_pubu.html,所以模板配置文件名也是小写下划线的,只是文件名后缀是json。
一个简单的模板配置文件必备内容如下:
{
"name": "门户应用首页", /*模板文件名*/
"action": "portal/Index/index",/*模板文件对应的操作*/
"description": "门户应用首页模板文件",/*模板文件描述*/
"order": 5.0,/*模板文件在后台模板文件列表的排序,小在前*/
"more": {} /*模板文件扩展配置, 一般有vars,widgets两个属性*/}更改模板配置文件后,一定记得在后台更新模板
模板安装时检查模板文件和模板配置文件是否一一对应,如果不对应是不会安装此模板文件的
一个包含模板变量和控件的配置文件内容如下:
{
"name": "首页",
"action": "portal/Index/index",
"description": "首页模板文件",
"order": 6.0,
"more": {
"vars": {
"varName1": {
"title": "测试 text",
"value": "1",
"type": "text",
"tip": "这是一个text",
"rule": {
"require": true
}
}
},
"widgets": {
"widgetName1": {
"title": "所有组件演示",
"display": "1",
"vars": {
"text": {
"title": "测试 text",
"value": "1",
"type": "text",
"tip": "这是一个text",
"rule": {
"require": true
}
}
}
}
}
}}模板变量 var
一个模板配置文件可以添加多个模板变量,模板变量在模板扩展属性 more.vars 里,varName1键值就是模板变量名,支持多种类型(text,textarea...)的模板变量,具体请看下面的模板变量类型章节;不同的变量类型在后台设置时表现形式不同;
一个常用的text类型的变量配置格式如下:
"vars": {
"varName1": {
"title": "测试 text", /*后台设置时 input 的 label*/
"value": "1", /*变量默认值*/
"type": "text", /*变量类型*/
"tip": "这是一个text", /*后台设置时 input 的 帮助提示*/
"rule": { /*后台设置时 input 的 验证规则*/
"require": true
}
}}在模板中输出模板变量
在前台模板中,我们把所有模板变量放在$theme_vars中,$theme_vars就是一个数组,要输出或使用模板变量只要把它当成$theme_vars中的值就可以了,如:
{$theme_vars.varName1|default=''}当成 php 变量来用:
<php> echo $theme_vars['varName1']; //记得要判断一下这个变量是否存在!</php>
模板控件 widget
模板控件就是模板里一个显示块,我们通过模板控件可以把一个模板分成多个块,通过设置控件属性可以设置是否显示等,一个模板配置文件可以添加多个模板控件,模板控件在模板扩展属性 more.widgets 里,widgetName1键值就是模板控件名.
一个基本的控件配置格式如下:
"widgets": {
"widgetName1": {
"title": "所有组件演示", /*模板控件标题,用于后台设置*/
"display": "1", /*控件是否显示,1:显示;0:不显示*/
"vars": {/*模板控件变量,和模板变量一样*/
"text": {
"title": "测试 text",
"value": "1",
"type": "text",
"tip": "这是一个text",
"rule": {
"require": true
}
}
}
}}在模板中使用模板控件
在前台模板中,我们把所有模板控件放在$theme_widgets中,$theme_widgets就是一个数组,要使用模板控件只要把它当成$theme_widgets中的值就可以了,如:
<php> print_r($theme_widgets['widgetName1']);//记得要判断一下这个控件是否存在!</php>
你也可以使用 widget标签:
<widget name="widgetName1">
<!--输出控件标题-->
{$widget.title}
<!--调用控件的变量-->
{$widget.vars.varName1|default=''}
或:
<php>
echo $widget['vars']['varName1'];//记得要判断一下这个变量是否存在!
</php></widget>公共模板变量,公共模板控件
如果是公共模板文件,应该加上is_public属性,并且设置值为1,这时这个配置文件里的变量和控件变成公共变量和控件,在每个页面都加载,如simpleboot3/public/config.html的配置文件simpleboot3/public/config.json
{
"name": "模板全局配置",
"action": "public/Config",/*虚拟的操作地址,并不存在*
"description": "模板全局配置文件",
"is_public": "1",/*默认值为0,开启后会在每个页面加载这个配置*/
"order": 0.0,
"more": {
"vars": {
"enable_mobile": {
"title": "手机注册",
"value": "ThinkCMF",
"type": "select",
"value": 1,
"options": {
"1": "开启",
"0": "关闭"
},
"tip": ""
}
},
"widgets": {
"widgetName1": {
"title": "所有组件演示", /*模板控件标题,用于后台设置*/
"display": "1", /*控件是否显示,1:显示;0:不显示*/
"vars": {/*模板控件变量,和模板变量一样*/
"text": {
"title": "测试 text",
"value": "1",
"type": "text",
"tip": "这是一个text",
"rule": {
"require": true
}
}
}
}
}
}}注意:/**/这样的注释请在开发时删除
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。


