october cms页面介绍一

说明


所有网站都有页面。在october cms 页面用页面模板表示,页面模板文件存储在主题根目录下的pages目录下。根据页面功能进行相应的命名。文件扩展名为.htm。在页面中含有配置信息和twig模板引擎代码区。也可以含有php代码区域。

title = "分类"
url = "/categories/:slug"
layout = "default"
description = "分类列表页面"
is_hidden = 0

[blogCategories]
slug = "{{ :slug }}"
displayEmpty = 0
categoryPage = "blog/category"
==
param('slug');
    $slug = strchr($slug,'.',true);
    $this['category'] = Category::where('slug',$slug)->first();
}


function onEnd()
{
    $this->page->title = $this['category']['name'];
}
?>
==

页面配置


页面配置在页面的配置区内中定义,页面配置定义了页面参数,用于路由和页面组件所需要的页面参数

参数 描述
url 页面路由、必填、url格式语法下面有描述
title 标题、必填
layout 页面布局、可选 应包含布局文件的名称,不包括扩展名,如:default
description 后端界面的页面说明描述、可选

配置语法


页面路由地址由url配置参数定义。url应以/开头,并且可以包含参数。没有参数的url是有固定的格式。在以下示例中,页面URL是/blog。

  1. 不含参数的url
url = "/blog"

具有参数的url更灵活。以下示例中定义的URL模式的页面将匹配如下来url地址的路由/categories/:slug。url参数中的:slug可通过组件或php代码区进行处理,比如我这个blog分类。

/categories/:slug

使用组件:编辑某page layout partials,选择组件,点击组件。会把组件自动挂载页面、布局、和部分上。


组件
[blogCategories]
slug = "{{ :slug }}"
displayEmpty = 0
categoryPage = "blog/category"

或使用代码选区

use RainLab\Blog\Models\Category;

function onStart()
{
    $slug = $this->param('slug');
    $slug = strchr($slug,'.',true);
    $this['category'] = Category::where('slug',$slug)->first();
}

这样在页面模板中就可以直接使用category变量了。

{% for post in category.posts %} {% endfor %}

如果参数可选择:post_id加上?

url = "/blog/post/:post_id?"

中间参数不能使用可选项、最好不要使用下面的路由

url = "/blog/:post_id?/comments"

可选参数可以具有默认值,这些值用作回退值,以防在URL中未显示实际参数值。默认值不能包含任何星号,管道符号或问号。默认值在问号后面指定。在下一个示例中,该category_id参数将是10URL /blog/category。

url = "/blog/category/:category_id?10"

您还可以使用正则表达式来验证参数。要添加验证表达式,请在参数名称(或问号)后添加管道符号并指定表达式。表达式中不允许使用正斜杠符号。例子:

url = "/blog/:post_id|^[0-9]+$/comments" - 匹配地址/blog/post/10/comments

url = "/blog/:post_id|^[0-9]+$" - 匹配地址 /blog/post/3

url = "/blog/:post_name?|^[a-z0-9\-]+$" - 匹配地址 /blog/my-blog-post

可以在参数后面添加一个星号,使用特殊的通配符参数。与常规参数不同,通配符参数可以匹配一个或多个URL段。URL只能包含单个通配符参数,不能使用正则表达式,也可以后跟可选参数。

url = "/blog/:category*/:slug"

可配置/blog/cw100/design/plan/list
category: cw100/design/play
slug: list

注意:子目录不会影响页面网址 - URL仅使用url参数定义

你可能感兴趣的:(october cms页面介绍一)