## 模板概述
呆錯文章管理系統使用的模板引擎為ThinkPHP自帶的引擎,所以您在開發模板的過程中只需要理解TP的模板調用語法即可。如果您對TP的模板還不熟悉,請點擊[這里](http://www.hmoore.net/manual/thinkphp5/118122)閱讀TP5.0的模板章節。
## 模板主題
呆錯文章管理系統的模板主題會自動根據訪客的終端類型自動選擇不同的模板主題,您只需要在后臺 > 文章 > 頻道設置 管理面板中為不同終端設置好模板主題名稱即可。
## 模板目錄
呆錯文章管理系統的模板主題目錄放在apps/cms/theme目錄下,您可以在該目錄下自行開發模板或將下載的模板主題上傳至該目錄。
## 模板繼承
> 如需使用呆錯文章管理系統的模板機制則需要繼承前臺基類模板,繼承以后就可以使用DaiCuo開發框架的提供腳本庫快速完成一些模板特效(具體操作方法為在模板的頂部添加繼承代碼后使用block標簽定義頁面,實例如下),當然這個不是必須的,你也可以自行編寫任意的HTML文件。
基類模板定義的相關的區塊(block)默認有以下幾個,您可以根據需要使用block標簽替換。
* header_meta Head區區塊
* header_more Head區附加代碼
* header 網頁頭部區塊
* main 網頁主體區塊
* footer 網頁底部區塊
* js 網頁加載JS代碼區塊
```
{extend name="apps/common/view/front.tpl" /}
{block name="header_meta"}
<title>{$index_title}</title>
<meta name="keywords" content="{$index_keywords}" />
<meta name="description" content="{$index_description}" />
{/block}
```
## 模板包含
通常有一些模板通用的組件是重復的元素,比如導航欄、搜索框等,我們稱之為“小組件”,這些小組件可以隨意命名,只需要將基放在widget模板目錄內后使用include標簽包含即可(實例如下)。
```
{include file="widget/header" /}
```
## 模板下載
呆錯站長論壇提供呆錯文章管理系統模板主題的免費下載與交流,如有需要 [點擊這里](http://bbs.daicuo.net)
## 關于普通標簽
* 普通標簽是指在訪問呆錯文章管理系統具體頁面時,系統預先已經定義的模板變量,調用語法為 ``` {$變量名} ```
* 普通標簽可以直接在模板中使用,在使用普通標簽時請參考指定的頁面范圍。
## 普通標簽調用實例
以首頁的SEO優化相關標簽為例,在模板里直接調用。
```
<title>{$index_title}</title>
<meta name="keywords" content="{$index_keywords}" />
<meta name="description" content="{$index_description}" />
```
## 關于函數標簽
* 函數標簽是指在模板里直接調用PHP內置函數或呆錯文章系統函數對模板變量進行處理。
* 函數標簽的調用語法可以在變量后直接使用 ```|``` 分隔或者使用 ```:``` 調用。
## 函數標簽調用實例
以首頁的SEO優化相關標簽為例,以下兩種調用方式都可以實現默認值輸出。
```
<title>{$index_title|DcEmpty='呆錯文章系統'}</title>
<title>{:DcEmpty(index_title,'呆錯文章系統')}</title>
```
當使用|的方式調用時,默認函數的參數是依次從第一個,如不是此情景則需要使用占位符,如下
```
{$info_create_time|date='Y-m-d H:i:s',###}
```
## 關于循環標簽
在模板里循環輸出直接使用ThinkPhp的 volist 或 foreach 標簽,循環輸出的變量可以直接定義或通過函數來調用。
## 循環標簽輸出調用實例
```
<ul class="list-unstyled">
{volist name=":cmsSelect(['status'=>'normal','limit'=>10,'sort'=>'info_views','order'=>'desc'])" id="cms"}
<li class="py-2"><a href="{:cmsUrlDetail($cms)}">{$cms.info_name|DcHtml}</a></li>
{/volist}
</ul>
```
## 數據調用函數實例
系統主要有cmsSelect、cmsCategorySelect、cmsTagSelect、cmsNavsSelect這幾個函數,具體常用的函數請參考后續助手函數章節。
* cmsSelect 文章列表數據調用函數
* cmsCategorySelect 所有分類數據調用函數
* cmsTagSelect 所有標簽數據調用函數
* cmsNavsSelectt 所有導航菜單數據調用函數
## 關于URL路徑
呆錯文章管理系統的站內URL鏈接統一使用cmsUrl函數生成,這主要用在模板制作過程中,使用方法如下。
~~~
http://serverName/index.php/cms/控制器/操作/[參數名/參數值...]
~~~
## 關于站內鏈接
以默認模板主題(default)為例進行說明,在模板開發時除了基本的cmsUrl函數外還提供了以下幾個函數快速生成對應的頁面路徑。
* cmsUrlCategory 文章分類頁鏈接
* cmsUrlTag 文章標簽頁鏈接
* cmsUrlSearch 文章搜索頁鏈接
* cmsUrlDetail 文章詳情頁鏈接
* cmsUrl 生成內部鏈接
- 序言
- 建站流程
- 環境配置
- 系統安裝
- 系統升級
- 網站結構
- 后臺管理
- 全局配置
- 緩存設置
- 上傳設置
- 視頻設置
- 頻道設置
- 文章管理
- 采集管理
- 欄目分類
- 標簽TAG
- SEO優化
- 字段擴展
- 工具維護
- 安裝插件
- 模板開發
- 全局標簽
- 首頁標簽
- 分類頁標簽
- 標簽頁標簽
- 搜索頁標簽
- 篩選頁標簽
- 詳情頁標簽
- 聚合頁標簽
- 助手函數
- cmsSelect
- cmsGet
- cmsGetId
- cmsGetSlug
- cmsGetName
- cmsPrev
- cmsNext
- cmsAttrOption
- cmsTypeOption
- cmsFields
- cmsCategorySelect
- cmsCategoryId
- cmsCategorySlug
- cmsCategoryName
- cmsTagSelect
- cmsTagId
- cmsTagSlug
- cmsTagName
- cmsTags
- cmsNavsSelect
- cmsImagePreg
- cmsColor
- cmsDate
- cmsSeo
- cmsSubstr
- cmsTrim
- cmsUrl
- cmsUrlCategory
- cmsUrlTag
- cmsUrlSearch
- cmsUrlFilter
- cmsUrlDetail
- cmsUrlImage