OctoberCMS-3-主題

主題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)。

主題日誌記錄

主題日誌記錄是一個很是有用的功能,默認狀況下是禁用的。因爲佈局和頁面的內容存儲在文件中,可能會發生丟失內容的狀況,主題日誌記錄能夠將這些修改產生的變化都記錄下來。

啓用主題日誌記錄,能夠進入設置——日誌——日誌設置——啓用主題更改。設置完成後,保存設置,刷新頁面則能夠看見在日誌——主題日誌,點擊能夠查看。

相關文章
相關標籤/搜索