# 主題
## **介紹**
主題定義了使用October構建的網站或Web應用程序的外觀。October主題完全基于文件,可以使用任何版本控制系統進行管理,例如Git。此頁面為您提供October主題的高級描述。您可以在相應的文章中找到有關[頁面](http://www.hmoore.net/followme/octobercms/1073311),[部件](http://www.hmoore.net/followme/octobercms/1073832),[布局](http://www.hmoore.net/followme/octobercms/1073833)和[內容文件的](http://www.hmoore.net/followme/octobercms/1073834)更多詳細信息。主題是默認情況下駐留在\*\*/ themes\*\*目錄中的目錄。主題可以包含以下對象:
對象描述[頁面](http://www.hmoore.net/followme/octobercms/1073311)代表網站頁面。[部件](http://www.hmoore.net/followme/octobercms/1073832)包含可重復使用的HTML標記塊。[布局](http://www.hmoore.net/followme/octobercms/1073833)定義頁面腳手架。[內容文件](http://www.hmoore.net/followme/octobercms/1073833)可以與頁面或布局分開編輯的文本,HTML或[Markdown](http://daringfireball.net/projects/markdown/syntax)塊。**資源文件**是圖像,CSS和JavaScript文件等資源文件。## **目錄結構**
您可以在下面看到一個示例主題目錄結構。每個October主題用一個單獨的目錄表示,通常一個激活的主題用于顯示網站。此示例顯示“網站”主題目錄。
```
themes/
website/ <=== Theme starts here
pages/ <=== Pages directory
home.htm
layouts/ <=== Layouts directory
default.htm
partials/ <=== Partials directory
sidebar.htm
content/ <=== Content directory
intro.htm
assets/ <=== Assets directory
css/
my-styles.css
js/
images/
```
> 激活主題使用文件中的`activeTheme`參數`config/cms.php`或系統> CMS>前端主題后端頁面上的主題選擇器進行設置。使用主題選擇器設置的主題會覆蓋`config/cms.php`文件中的值。
### **子目錄**
October支持頁面,部件,布局和內容文件的單級子目錄(**assets**目錄可以具有任何結構)。這簡化了組織大型網站的過程。在下面的示例目錄結構中,您可以看到pages和partials目錄包含**blog**子目錄,而content目錄包含**home**子目錄。
```
themes/
website/
pages/
home.htm
blog/ <=== Subdirectory
archive.htm
category.htm
partials/
sidebar.htm
blog/ <=== Subdirectory
category-list.htm
content/
footer-contacts.txt
home/ <=== Subdirectory
intro.htm
...
```
要從子目錄引用部分文件或內容文件,請在模板名稱前指定子目錄名稱。從子目錄渲染部分的示例:
```
{% partial "blog/category-list" %}
```
> \*\*注意:\*\*模板路徑始終是絕對路徑。如果在某個部件中,您從同一子目錄中呈現另一個部件,則仍需要指定子目錄名稱。
## **模板結構**
頁面,部件和布局模板最多可包含3個部分:**配置**,**PHP代碼**和**Twig標記**。部分用`==`序列分開。例如:
```
url = "/blog"
layout = "default"
==
function onStart()
{
$this['posts'] = ...;
}
==
<h3>Blog archive</h3>
{% for post in posts %}
<h4>{{ post.title }}</h4>
{{ post.content }}
{% endfor %}
```
### **配置部分**
配置部分設置模板參數。支持的配置參數特定于不同的CMS模板,并在相應的文檔文章中進行了描述。配置部分使用簡單的[INI格式](http://en.wikipedia.org/wiki/INI_file),其中字符串參數值包含在引號內。頁面模板的示例配置部分:
```
url = "/blog"
layout = "default"
[component]
parameter = "value"
```
### **PHP代碼部分**
每次渲染模板之前,PHP部分中的代碼都會執行。對于所有CMS模板,PHP部分是可選的,其內容取決于定義它的模板類型。PHP代碼部分可以包含可選的打開和關閉PHP標記,以在文本編輯器中啟用語法突出顯示。應始終在節分隔符的另一行上指定打開和關閉標記`==`。
```
url = "/blog"
layout = "default"
==
<?
function onStart()
{
$this['posts'] = ...;
}
?>
==
<h3>Blog archive</h3>
{% for post in posts %}
<h4>{{ post.title }}</h4>
{{ post.content }}
{% endfor %}
```
在PHP部分中,您只能定義函數并使用PHP`use`關鍵字引用名稱空間。PHP部分中不允許其他PHP代碼。這是因為在解析頁面時PHP部分將轉換為PHP類。使用命名空間引用的示例:
```
url = "/blog"
layout = "default"
==
<?
use Acme\Blog\Classes\Post;
function onStart()
{
$this['posts'] = Post::get();
}
?>
==
```
作為設置變量的一般方法,您應該使用數組訪問方法`$this`,盡管為了簡單起見,您可以將**對象訪問用作只讀**,例如:
```
<pre class="calibre11">```
// Write via array
$this['foo'] = 'bar';
// Read via array
echo $this['foo'];
// Read-only via object
echo $this->foo;
```
```
### **Twig標記部分**
Twig部分定義了模板要呈現的標記。在Twig部分,您可以使用[October提供的](http://www.hmoore.net/followme/octobercms/1073310#666)函數,標記和過濾器,所有本[機Twig功能](http://twig.sensiolabs.org/documentation)或[插件提供的](http://www.hmoore.net/followme/octobercms/1074009#Twig_9)功能。Twig部分的內容取決于模板類型(頁面,布局或部分)。您可以在文檔中找到有關特定Twig對象的更多信息。可以[在標記指南中](http://www.hmoore.net/followme/octobercms/1073310#666)找到更多信息。
## **主題日志**
OctoberCMS附帶了一個非常有用的功能,默認情況下禁用,稱為主題記錄。
由于布局和頁面將大部分數據存儲在平面文件中,因此您或您的客戶可能會意外丟失內容。例如,切換頁面的布局將修改頁面的支架,因此導致數據丟失。
要啟用主題日志記錄,只需轉到**設置 - >日志設置**并啟用**日志主題更改**。現在記錄所有更改。
可以在\*\*“設置” - >“主題日志”中**查看主題更改**日志\*\*。每次更改都會概述已添加/刪除的內容,以及之前和之后已更改文件的副本。如有必要,您可以使用此信息來確定還原更改的相應操作。
- 基本說明
- 基本操作
- October cms 安裝
- 后臺控制器路徑
- 圖標
- 獲取安裝網上的插件/主題
- 插件構造器使用
- 定時任務
- October后臺控制器
- vscode編輯器
- ajax操作
- 使用
- ajax更新組件
- ajax屬性API
- JavaScript API
- ajax綜合使用
- 主題
- 多語言主題
- 安裝市場主題
- 主題程序處理
- 主題
- 頁面
- 部件
- 布局
- 內容
- 組件
- 媒體
- 主題表單操作
- 表單使用
- 表單后端程序處理
- 插件
- 自定義插件
- 插件說明
- 插件導航條
- 插件數據庫設置
- 插件的設置管理
- 插件的配置文件config
- 組件
- app服務
- app容器
- 擴展行為
- 緩存
- Collection類
- Lazy Collections
- Collection方法
- 助手函數
- 數組助手函數
- 路徑助手函數
- 玄樂助手函數
- 其他助手函數
- 錯誤與記錄
- 事件處理
- HTML頁面
- 文件與目錄操作
- 散列和加密
- 郵件
- 郵件內容
- 郵件發送
- 分頁
- 模板解析器
- 動態解析器語法
- 隊列消息
- 請求與輸入
- 響應
- 視圖
- 路由器
- 配置
- 驗證操作
- 處理錯誤消息
- 錯誤消息與視圖
- 可用的驗證規則
- 有條件的驗證規則
- 驗證數組
- 錯誤消息
- 自定義驗證規則
- 模型操作
- 定義模型與其屬性
- 檢索模型
- 插入與更新
- 刪除模型
- 查詢范圍
- 事件操作
- 關聯操作
- 定義關系
- 關系類型
- 多肽關系
- 關系查詢
- 渴望加載
- 插入模型
- 數據庫操作
- 基本用法
- 數據表結構
- 查詢連貫操作
- 結果檢索
- select子句
- 插入更新
- where子句
- 排序,分組,限制和偏移
- 文件附件
- Collection操作
- 屬性操作
- 系列化json
- 數據庫屬性
- 數據庫行為
- 控制器
- 后臺控制器定義
- 后臺頁面
- 后臺組件
- 后臺表單
- 表單組件
- 表單視圖
- 表單行為
- 后臺列表
- 列表行為
- 列表過濾器
- 可用列類型
- 關系行為
- 關系行為類型
- 擴展關系行為
- 列表排序操作
- 導入導出操作
- 用于與權限
- corlate模板修改
- 修改頂部導航
- laravel問題
- 控制器不存在
- 控制器
- 路由組
- laravel筆記
- laravel 安裝
- 偽靜態配置
- 依賴注入 & 控制器
- 中間件
- 路由文件
- 視圖