主題php
介紹css
主題定義了October構建的網站或Web應用程序的外觀。主題徹底基於文件定義,可使用任何版本控制軟件管理。前端
主題存儲在項目的themes目錄的對應子目錄中。主要包含如下部分:web
名稱 Description
Pages 網站的頁面
Partials 能夠重用的HTML標記塊
Layouts 定義頁面的結構
Content files 能夠是文本,HTML代碼和Markdown 代碼塊,主要用於與Page和Layout進行分開編輯維護。
Asset files 資源文件包含圖片、樣式表和JS腳本文件。 安全
主題的目錄結構ide
每一個主題都有一個獨立的目錄,只有激活的主題纔會顯示在網站上。基本結構的例子:函數
themes/ website/ <=== 主題的目錄 pages/ <=== Pages(頁面目錄) home.htm layouts/ <=== Layouts(佈局目錄) default.htm partials/ <=== Partials(部件目錄) sidebar.htm content/ <=== Content(內容目錄) intro.htm assets/ <=== Assets (資源目錄) css/ my-styles.css js/ images/
激活主題的方式有後臺操做和修改配置文件兩種方式,修改config/cms.php文件中的activeTheme的設置值。或者,採起後臺設置,操做步驟爲:設置——內容管理——前端主題——選擇一個主題激活便可。佈局
子目錄post
October支持單層子目錄,有Pages、Partials、Layouts、Content和Assets目錄。這樣簡化了大型網站的目錄結構。網站
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文件或者Content文件,格式爲:{% 名稱 + 路徑 %},好比:
{% partial "blog/category-list" %}
上述表示,引入一個Partial部件,部件的位置及文件爲:Partials/blog/category-list.htm。注意,模板路徑老是絕對的,在同一個Partial目錄中,引用同目錄中的另一個Partial,也必須寫完整的子目錄名稱。
模板結構
對於Page、Partial和Layout他們所對應的模板結構,都是包含了三個部分:Configuration,PHP Code,Twig markup。各個部分之間經過 " == " 進行分割開來。
url = "/blog" layout = "default" == function onStart() { $this['posts'] = ...; } == <h3>Blog archive</h3> {% for post in posts %} <h4>{{ post.title }}</h4> {{ post.content }} {% endfor %}
COnfiguration Section 【配置部分】
配置部分用於設置模板參數,具體參數與不一樣的模板相關,因類型而不一樣。配置部分使用簡化的" ini "格式,字符串參數值必須包含在雙引號中。
url = "/blog" layout = "default" [component] parameter = "value"
PHP Code (PHP代碼部分)
在模板每次渲染以前,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部分,只能定義函數,容許使用use引入名稱空間。可是除了這些不容許其餘PHP代碼。
url = "/blog" layout = "default" == <? use Acme\Blog\Classes\Post; function onStart() { $this['posts'] = Post::get(); } ?> ==
訪問變量可使用$this,經過數據方式能夠設置或者讀取變量,使用對象方式則只能讀取變量的值。
// Write via array $this['foo'] = 'bar'; // Read via array echo $this['foo']; // Read-only via object echo $this->foo;
Twig Markup Section(Twig標記部分)
Twig是一個靈活,快速,安全的PHP模板語言。 Twig標記部分定義要由模板呈現的內容。在這個部分可使用October提供的函數、標記或者過濾器。其內容取決於模板類型(page、layout、partial)。
主題日誌記錄
主題日誌記錄是一個很是有用的功能,默認狀況下是禁用的。因爲佈局和頁面的內容存儲在文件中,可能會發生丟失內容的狀況,主題日誌記錄能夠將這些修改產生的變化都記錄下來。
啓用主題日誌記錄,能夠進入設置——日誌——日誌設置——啓用主題更改。設置完成後,保存設置,刷新頁面則能夠看見在日誌——主題日誌,點擊能夠查看。