100%

主题

介绍

主题定义了网站或Web应用程序的外观. october主题完全基于文件,可以使用任何版本控制系统进行管理, 例如 Git. 此页面为您提供october主题的简要描述。你可以在 pages, partials, layouts and content files 找到更详细的介绍.

主题是默认情况下在/themes目录中。主题可以包含以下对象:

Object Description
Pages 代表网站页面。.
Partials 包含可重复使用的HTML标记块。
Layouts 定义页面脚手架。
Content files 文件文本,HTML或Markdown,可以与页面或布局分开编辑。
Asset files 是图像,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/

活动主题设置 在config/cms.phpactiveTheme 参数 或者在后台 System > CMS > Front-end Theme 设置. 那个设置会覆盖 config/cms.php 中的值.

子目录

october支持目录下的子目录设置,如:

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" %}

注意: 目录路径总是相对于主题根目录的.



改进 重译

模板结构

Pages, partials and layout 模版 包含3个部分: configuration, PHP code, and 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 %}

配置部分

支持的配置参在不同的CMS模板文章中进行了描述. 配置部分使用简单的格式 INI format, 其中字符串参数值包含在引号内. 例如:

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的数组访问方法, 例如:

// Write via array
$this['foo'] = 'bar';

// Read via array
echo $this['foo'];

// Read-only via object
echo $this->foo;

Twig 标签

Twig部分定义了模板要呈现的标记. 在Twig部分,您可以使用函数,标签和 filters october 提供, 原生标签, or those 扩展标签. Twig部分的内容取决于模板类型 (page, layout or partial). 您可以在文档中找到有关特定Twig对象的更多信息。

更多信息查看 标签.



改进 重译

主题日志

记录CMS主题的修改记录,默认关闭

Settings -> Log settings ->Log theme changes 中开启



改进 重译