模板文件一定要小写下划线,如 list_pubu.html

你可以给你每一个模板文件增加一个json配置文件,用于描述这个模板文件;配置文件和模板文件名是同名的,只是后缀为 json,如simpleboot3/portal/index.html模板文件的配置文件就是simpleboot3/portal/index.json;一个简单的配置文件内容如下:

  1. {
  2. "name": "门户应用首页", /*模板文件名*/
  3. "action": "portal/Index/index",/*模板文件对应的操作*/
  4. "description": "门户应用首页模板文件",/*模板文件描述*/
  5. "order": 5.0,/*模板文件在后台模板文件列表的排序,小在前*/
  6. "more": {} /*模板文件扩展配置, 一般有vars,widgets两个属性*/
  7. }
更改模板配置文件后,一定记得在后台更新模板模板安装时检查模板文件和模板配置文件是否一一对应,如果不对应是不会安装此模板文件的

一个包含模板变量和控件的配置文件内容如下:

  1. {
  2. "name": "首页",
  3. "action": "portal/Index/index",
  4. "description": "首页模板文件",
  5. "order": 6.0,
  6. "more": {
  7. "vars": {
  8. "varName1": {
  9. "title": "测试 text",
  10. "value": "1",
  11. "type": "text",
  12. "tip": "这是一个text",
  13. "rule": {
  14. "require": true
  15. }
  16. }
  17. },
  18. "widgets": {
  19. "widgetName1": {
  20. "title": "所有组件演示",
  21. "name": "all_widget",
  22. "display": "1",
  23. "vars": {
  24. "text": {
  25. "title": "测试 text",
  26. "value": "1",
  27. "type": "text",
  28. "tip": "这是一个text",
  29. "rule": {
  30. "require": true
  31. }
  32. }
  33. }
  34. }
  35. }
  36. }
  37. }

模板变量

一个模板配置文件可以添加 n多个模板变量,模板变量在模板扩展属性 more.varsvarName1键值就是模板变量名,支持多种类型(text,textarea…)的模板变量,具体请看模板变量类型;不同的变量类型在后台设置时表现形式不同;一个常用的text类型的变量配置格式如下:

  1. "vars": {
  2. "varName1": {
  3. "title": "测试 text", /*后台设置时 input 的 label*/
  4. "value": "1", /*变量默认值*/
  5. "type": "text", /*变量类型*/
  6. "tip": "这是一个text", /*后台设置时 input 的 帮助提示*/
  7. "rule": { /*后台设置时 input 的 验证规则*/
  8. "require": true
  9. }
  10. }
  11. }

在模板中输出模板变量

在前台模板中,我们把所有模板变量放在$theme_vars中,$theme_vars就是一个数组,要输出或使用模板变量只要把它当成$theme_vars中的值就可以了,如:

  1. {$theme_vars.varName1|default=''}
  1. <php>
  2. echo $theme_vars['varName1']; //记得要判断一下这个变量是否存在!
  3. </php>

模板控件

模板控件就是模板里一个显示块,我们通过模板控件可以把一个模板分成 n多个模块,通过设置控件属性可以设置是否显示等,一个模板配置文件可以添加 n多个模板控件,模板控件在模板扩展属性 more.widgetswidgetName1键值就是模板控件名.一个基本的控件配置格式如下:

  1. "widgets": {
  2. "widgetName1": {
  3. "title": "所有组件演示", /*模板控件标题,用于后台设置*/
  4. "display": "1", /*控件是否显示,1:显示;0:不显示*/
  5. "vars": {/*模板控件变量,和模板变量一样*/
  6. "text": {
  7. "title": "测试 text",
  8. "value": "1",
  9. "type": "text",
  10. "tip": "这是一个text",
  11. "rule": {
  12. "require": true
  13. }
  14. }
  15. }
  16. }
  17. }

在模板中使用模板控件

在前台模板中,我们把所有模板控件放在$theme_widgets中,$theme_widgets就是一个数组,要使用模板控件只要把它当成$theme_widgets中的值就可以了,如:

  1. <php>
  2. print_r($theme_widgets['widgetName1']);//记得要判断一下这个控件是否存在!
  3. </php>

同时我们也增加一个 widget标签

  1. <widget name="widgetName1">
  2. <!--输出控件标题-->
  3. {$widget.title}
  4. <!--调用控件的变量-->
  5. {$widget.vars.varName1|default=''}
  6. 或:
  7. <php>
  8. echo $widget['vars']['varName1'];//记得要判断一下这个变量是否存在!
  9. </php>
  10. </widget>

原文: https://www.thinkcmf.com/docs/cmf/模板文件配置.html