> 模板文件一定要小寫下劃線,如 `list_pubu.html`
你可以給你每一個模板文件增加一個`json`配置文件,用于描述這個模板文件;配置文件和模板文件名是同名的,只是后綴為 json,如`simpleboot3/portal/index.html`模板文件的配置文件就是`simpleboot3/portal/index.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": "所有組件演示",
"name": "all_widget",
"display": "1",
"vars": {
"text": {
"title": "測試 text",
"value": "1",
"type": "text",
"tip": "這是一個text",
"rule": {
"require": true
}
}
}
}
}
}
}
```
添加好模板配置文件,在后臺模板管理里,找到你的模板,就可以開發設計模板頁面了。設計的目的主要是更改你在配置中設置的變量和控件的值。
a.找到你的當前模板 simpleboot3

b.找到你的模板文件,比如首頁模板文件,點設計

c.模板文件設計界面,可視化編輯數據

d.保存后到前臺刷新相應的模板界面,看界面變化
至于如何在模板中獲取模板設計時更改的模板變量呢?請繼續往下研究~
## 模板變量
一個模板配置文件可以添加 n多個模板變量,模板變量在模板擴展屬性 `more.vars` 里
`varName1`鍵值就是模板變量名,支持多種類型(text,textarea...)的模板變量,具體請看[模板變量類型](模板變量類型.md);不同的變量類型在后臺設置時表現形式不同;
一個常用的`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>
echo $theme_vars['varName1']; //記得要判斷一下這個變量是否存在!
</php>
```
## 模板控件
模板控件就是模板里一個顯示塊,我們通過模板控件可以把一個模板分成 n多個模塊,通過設置控件屬性可以設置是否顯示等,一個模板配置文件可以添加 n多個模板控件,模板控件在模板擴展屬性 `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": ""
}
}
}
}
```
- 序言
- 基礎
- 主要特性
- 安裝ThinkCMF
- 為了更爽
- 目錄結構
- 入口文件
- 第三方庫
- 開發規范
- 數據庫規范
- 調試模式
- URL訪問
- 應用
- 配置
- 路由
- 控制器
- 控制器定義
- 控制器模板賦值
- 控制器模板渲染
- 前臺控制器
- 前臺用戶控制器
- 后臺控制器
- 跳轉,AJAX返回和重定向
- URL生成
- 請求
- 請求信息
- 輸入變量
- 請求類型
- 獲取請求頭信息
- 偽靜態
- 更多
- 系統函數
- cmf_auth_check 用戶權限檢查
- cmf_check_user_action 用戶訪問控制
- cmf_check_verification_code 數字驗證碼檢查
- cmf_clear_verification_code 清除數字驗證碼
- cmf_compare_password 用戶密碼比較
- cmf_current_lang 判斷當前語言包
- cmf_get_admin_style 獲取后臺風格
- cmf_get_content_images 獲取HTML圖片
- cmf_get_current_admin_id 登錄管理員ID
- cmf_get_current_user 獲取登錄用戶信息
- cmf_get_current_user_id 登錄用戶ID
- cmf_get_file_download_url 獲取文件下載鏈接
- cmf_get_file_extension 獲取文件擴展名
- cmf_get_image_url 獲取圖片 URL
- cmf_get_option 獲取系統配置
- cmf_get_plugin_class 獲取插件類名
- cmf_get_root 網站根目錄
- cmf_get_site_info 獲取網站信息
- cmf_get_user_avatar_url 獲取用戶頭像URL
- cmf_get_verification_code 生成數字驗證碼
- cmf_is_mobile 判斷是否為手機
- cmf_is_user_login 判斷用戶是否登錄
- cmf_is_wechat 判斷是否為微信
- cmf_password 密碼加密
- cmf_plugin_url 插件URL生成
- cmf_replace_content_file_url 替換編輯器文件地址
- cmf_send_email 發送郵件
- cmf_set_dynamic_config 設置動態配置
- cmf_set_option 設置系統配置
- cmf_split_sql 切分SQL文件
- cmf_update_current_user 更新當前用戶信息
- cmf_url_encode 生成base64的url
- cmf_verification_code_log 驗證碼發送日志
- get_client_ip 獲取客戶端IP地址
- hook 添加鉤子
- cmf_check_mobile 檢查手機號
- cmf_is_android 判斷是否為安卓手機
- cmf_is_ios 判斷是否為ios訪問
- cmf_is_iphone 判斷是否為iphone訪問
- cmf_is_ipad 判斷是否為ipad訪問
- 數據庫
- 數據庫配置
- 添加數據
- 更新數據
- 查詢數據
- 刪除數據
- 事務操作
- 更多數據庫操作
- 模型
- 模型定義
- 添加數據
- 更新數據
- 查詢數據
- 刪除數據
- 數據驗證
- 應用
- 應用的概念
- 應用開發流程
- 導航共享
- 幾個重要基類
- 后臺菜單注解
- 用戶操作配置
- URL 規則配置
- 模板
- 模板常量
- 模板標簽
- 變量輸出
- 系統變量
- 請求參數
- 使用函數
- 使用默認值
- 使用運算符
- 三元運算
- 原樣輸出
- 模板注釋
- 模板目錄
- 包含文件
- 模板布局
- 模板繼承
- 網站信息
- 內置標簽
- 循環輸出標簽
- 比較標簽
- 條件判斷
- 標簽嵌套
- 原生PHP
- 定義標簽
- CMF標簽
- 導航標簽
- 子導航標簽
- 驗證碼標簽
- 幻燈片標簽
- 鉤子標簽
- 友情鏈接標簽
- 分頁標簽
- 傻瓜式模板
- 什么是傻瓜式模板
- 模板描述文件
- 模板文件配置
- 模板變量類型
- 模板變量數據源
- 導航模板數據源
- 導航菜單模板數據源
- 幻燈片模板數據源
- 模板切換
- 插件
- 插件鉤子
- 前臺模板鉤子
- 核心鉤子
- send_mobile_verification_code
- comment
- guestbook
- admin_dashboard
- switch_theme
- admin_login
- admin_init
- home_init
- 插件類主文件
- 插件開發流程
- 插件配置
- 插件控制器
- 插件后臺管理控制器
- 插件后臺菜單
- 插件視圖
- 插件數據庫模型
- 插件多語言
- 插件API控制器
- 前端
- Wind.js
- 前端組件
- js-ajax-form
- js-ajax-delete
- js-ajax-dialog-btn
- js-count-btn
- js-date
- js-datetime
- js-bootstrap-date
- js-bootstrap-datetime
- 專題
- 緩存
- Session
- Cookie
- 分頁
- 驗證碼
- 文件上傳
- 第三方擴展
- 門戶應用
- 模板目錄結構
- 模板開發
- 模板標簽
- 加載標簽庫
- 文章列表標簽
- 面包屑標簽
- 文章分類標簽
- 所有子分類標簽
- 子分類標簽
- 標簽文章列表標簽
- 門戶模板數據源
- 文章分類模板數據源
- 頁面模板數據源
- 附錄
- 升級日志
- 升級指導