By accessing the website and accepting the Cookie Policy, you agree to use the cookies provided by the Site in accordance with to analyze traffic, remember your preferences, and optimize your experience.

标签 - October CMS

October CMS    2018-10-22 18:54:42    47    0    0

Themes 介绍

主题定义了October构建的网站或Web应用程序的外观。主题完全基于文件定义,可以使用任何版本控制软件管理。

主题存储在项目的themes目录的对应子目录中。主要包含以下部分:

名称     Description 
Pages     网站的页面 
Partials 可以重用的HTML标记块 
Layouts 定义页面的结构 
Cont

October CMS    2018-10-22 18:54:42    54    0    0

Pages 概述

Pages:页面;网站页面的内容由Page模板定义。模板文件位置:themes/theme_name/pages目录下。页面文件的扩展名为htm。文档结构中,Configuration(配置)和Twig Markup(标记)部分是必须的,PHP代码部分是可选的。

最简单的例子

url = "/"
==
<h1>Hello, world!</h1>

页面配置

页面配置

October CMS    2018-10-22 18:54:42    54    0    0

Partials 概述

partials 我们这里简称【部件】,是可以重复使用的Twig标记块。可以用于网站的任何位置。比如页眉页脚或者其他Ajax内容。

partials模板文件存储在模板目录的partials子目录中。扩展名是htm。最简单的例子:

<p>This is a partial</p>

partials 的配置部分是可选的,其中可选参数description,用于给后端

October CMS    2018-10-22 18:54:42    53    0    0

Layout 概述

Layout,此处称为布局。定义了一个页面框架,即页面上的所有的重复的内容,例如header部分和footer部分。Layout通常包含HTML标签、HEAD标签、TITLE标签和BODY标签。

位置:安装的主题的目录,layout子目录中。

扩展名:htm

Layout中输出内容应该使用page标签进行页面内容输出。{% page %};最近简单的方式:

<html>
    <body>
        {% page %}
    </body>
</html>

Page与Layout关系,Page可以使用不同的Layout,Layout也可以通过Page来引用多个page页面。但是,他们之间建立联系的是Page中的设置,然后Layout中的{% page %}才能正确的引用这个page,才可以通过Page的URL结合Layout布局把页面显示出来。

要为一个Page使用Layout,Page的Configuration Section部分必须引用Layout文件名称(不带扩展名)。请记住,如果从子目录引用Layout,则应指定子目录名称。使用default.htm的Layout的示例页面模板:

url = "/"
layout = "default"
==
<p>Hello, world!</p>

当请求该页面时,其内容与Layout合并,或者更确切地说 - Layout的{% page %}标签被页面内容替换。前面的示例会生成以下标记:

<html>
    <body>
        <p>Hello, world!</p>
    </body>
</html>

请注意,您可以在Layout中渲染部件。这使您可以在不同的Layout之间共享常用元素。例如,您可以有一个输出网站CSS和JavaScript链接的部件。这种方法简化了资源的管理。 如果你想添加一个JavaScript引用,你应该修改一个小部件,而不是编辑所有的Layout。

布局中的配置区域是可选的,支持name和description。

description = "Basic layout example"
==
<html>
    <body>
        {% page %}
    </body>
</html>

Placeholders

Placeholders这里称为【占位符】,

October CMS    2018-10-22 18:54:42    55    0    0

Content Blocks

Content Blocks 这里我们称为内容块。内容块是可以编辑的文本、HTML代码或者Markdown块。主要用来保存静态内容,并支持基本的模板变量。与Partial(部件)相比,部件则更加灵活,一般用于生成动态内容。

介绍

内容块存储在主题目录的content子目录中。

支持以下扩展名的文件:

Extension Description 
htm 使用HTML标记语言 
txt 使用纯文本语言 
md 使用Markdown语法

这些扩展名决定了在后端系统界面中的编辑及显示方式。也决定了在网站前端的显示方式。Markdown块在显示之前会转换为HTML格式再显示。

渲染内容块

使用{% content 'file.htm' %}标签在PagePartialLayout 中渲染内容块。

渲染Content Blocks的页面示例:

url = "/contacts"
==
<div class="contacts">
    {% content 'contacts.htm' %}
</div>

将变量传递给内容块

内容块不支持Twig标记,但是支持基本的变量,可以通过变量传递值给内容块。

{% content 'welcome.htm' name='John' %}

Content Blocks中,可以使用单个大括号 { } 访问变量:

<h1>This is a demo for {name}</h1>

全局变量

可以使用该View::share方法注册一个全局变量,可用于所有Content Blocks

View::share('site_name', 'OctoberCMS');

这段代码可以在 插件注册文件 的注册或启动方法中调用。使用上面的例子,变量{site_name}将在所有Content Blocks中可用。

October CMS    2018-10-22 18:54:42    85    0    0

Components

Components这里我们称之为组件。

组件是可以配置的构建元素。可以附加到Pages(页面)、Layouts(布局)、Partials(部件)中。组件是October的核心特性。每个组件都可以对网站的功能进行扩展。组件可以在页面上输出HTML代码,但是这不是主要的,组件的一个重要功能是处理Ajax请求、处理表单提交回调,处理页面执行周期。允许向页面注入变量或者实现网站安全性。

介绍

启用组件,如果是后端管理系统中,可以选择组件面板,将组件拖动添加到页面、部件和布局中。如果是采用文本编辑模式,则可以将组件的对应模板的名称添加到对应的模板的配置部分。比如:下面的例子演示了如何将todolist组件添加到页面中。

title = "Components demonstration"
url = "/components"

[demoTodo]
maxItems = 20
==
...

当您引用Components时,它会自动创建一个与Components名称匹配的Page变量(在前面的示例中为demoTodo)。提供HTML标记的Components可以使用标记在Page上呈现{% component %},如下所示:

{% component 'demoTodo' %}

如果具有相同名称的两个组件分配给Page和Layout,Page中的组件将覆盖布局中的组件。

组件的别名

如果有两个注册Components的名称相同,则可以使用完全限定的名称引用组件,并为其指定一个别名:

[October\Demo\Components\Todo demoTodoAlias]
maxItems = 20

第一个参数是类名,第二个参数是注入到Page时使用的组件的别名。如果您指定了组件的别名,那么在引用组件时,可以页面代码中的任何地方使用。下一个示例引用Components别名:

{% component 'demoTodoAlias' %}

允许给同一个组件定义多个别名,以实现在同一个页面上使用一个组件的多个实例

[demoTodo todoA]
maxItems = 10
[demoTodo todoB]
maxItems = 20

组件使用外部属性值

默认情况下,属性值在定义组件的配置部分会进行初始化,这时候属性值是静态的,如下所示:

[demoTodo]
maxItems = 20