美文网首页october cms
october cms页面介绍二

october cms页面介绍二

作者: ben2012 | 来源:发表于2017-09-19 00:47 被阅读0次

动态页面


在页面模板的“ Twig”部分内,您可以使用october提供的任何功能,过滤器和标签。任何动态页面都需要变量。在october页面变量可以通过页面或布局PHP部分或组件来准备。在本文中,我们将介绍如何在PHP部分中准备变量。

页执行生命周期

可以在页面和布局PHP部分来定义特殊功能:onInit,onStart和onEnd。

  • onInit当所有组件被初始化并且处理AJAX请求之前,该函数被执行。
  • onStart函数在页面执行开始时执行。
  • onEnd函数在页面呈现之前和页面组件执行之后执行。
  • onStart、onEnd函数中,您可以向Twig环境注入变量、使用数组或标记将变量传递到页面:
url = "/"
==
function onStart()
{
    $this['hello'] = "Hello world!";
}
==
<h3>{{ hello }}</h3>

书写代码,在模板中可以通过{{hello}}输出变量

下一个例子比较复杂。它显示如何从数据库加载博客文章集合并显示在页面上(Acme \ Blog插件是虚构的)。

url = "/blog"
==
use Acme\Blog\Classes\Post;

function onStart()
{
  $this['posts'] = Post::orderBy('created_at', 'desc')->get();
}
==
<h2>Latest posts</h2>
<ul>
    {% for post in posts %}
        <h3>{{ post.title }}</h3>
        {{ post.content }}
    {% endfor %}
</ul>

在php代码区获取所有帖子信息,并注入到模板中的posts变量中,可以在模板中使用

october提供的默认变量和Twig扩展在“标记指南”中有描述。在动态布局文章中介绍了执行处理程序的整体顺序。

发送自定义响应


在执行生命周期中定义的所有方法都有能力停止进程并返回响应。只需返回生命周期功能的响应。下面的示例将不会加载任何页面内容并返回字符串Hello world!浏览器:

function onStart()
{
    return 'Hello world!';
}

可以使用laravel的Redirect门面触发重定向:

public function onStart()
{
    return Redirect::to('http://google.com');
}

处理表单

您可以使用页面或布局PHP部分中定义的处理程序方法处理标准表单(处理AJAX请求在AJAX框架文章中解释)。使用form_open()函数定义引用事件处理程序的窗体。例:

{{ form_open({ request: 'onHandleForm' }) }}
    Please enter a string: <input type="text" name="value"/>
    <input type="submit" value="Submit me!"/>
{{ form_close() }}
<p>Last submitted value: {{ lastValue }}</p>

在代码部分可以
function onHandleForm() {
    $this['lastValue'] = input('value');
}

function onHandleForm()
{
    $this['lastValue'] = post('value');
}

注意:如果在页面布局中定义了具有相同名称的处理程序,则页面和页面组件 october将执行页面处理程序。如果在组件和布局中定义了处理程序,则将执行布局处理程序。处理程序的优先级是:页面,布局,组件。

如果要引用特定组件中定义的处理程序,请在处理程序引用中使用组件名称或别名:

{{ form_open({ request: 'myComponent::onHandleForm' }) }}

404页

如果主题包含具有URL的页面,则/404在系统找不到请求的页面时显示该页面。

错误页面

默认情况下,将显示包含错误发生的文件内容,行号和堆栈跟踪的详细错误页面您可以通过在脚本中将配置值设置debug为falseconfig/app.php并创建带有该URL的页面来显示自定义错误页面/error。

页面变量

代码中

function onEnd()
{
    $this->page->title = 'A different page title';
}

模板中

<p>The title of this page is: {{ this.page.title }}</p*>
//this.page

this.page.layout
this.page.id
this.page.title 
this.page.description
this.page.meta_title 
this.page.meta_description 
this.page.hidden //判断是否登录可见

以编程方式注入页面资源


如果需要,您可以使用控制器addCss和addJs方法将资源(CSS和JavaScript文件)注入页面。它可以在页面或布局模板onStart的PHP部分定义的函数中完成。例:

function onStart()
{
    $this->addCss('assets/css/hello.css');
    $this->addJs('assets/js/app.js');
}

如果在指定的路径addCss和addJs方法参数与斜线(/)开始那么这将是相对于网站根。如果资产路径不以斜杠开头,那么它与主题相关。

注入资产可以通过将它们作为数组传递

function onStart()
{
    $this->addCss(['assets/css/hello.css', 'assets/css/goodbye.css']);
    $this->addJs(['assets/js/app.js', 'assets/js/nav.js']);
}

LESS和SCSS资产可以使用组合器进行注入和编译:

function onStart()
{
    $this->addCss(['assets/less/base.less']);
}

为了在页面或布局上输出注入的资产,请使用{%styles%}和{%scripts%}标签。例:

<head>
    ...
    {% styles %}
</head>
<body>
    ...
    {% scripts %}
</body>

相关文章

  • october cms页面介绍二

    动态页面 在页面模板的“ Twig”部分内,您可以使用october提供的任何功能,过滤器和标签。任何动态页面都需...

  • october cms页面介绍一

    说明 所有网站都有页面。在october cms 页面用页面模板表示,页面模板文件存储在主题根目录下的pages目...

  • October CMS

    简介 October是一个内容管理系统(CMS),更是一个致力于让开发工作流变得简单的web平台。其诞生的原由是对...

  • "Cms\Facades\Cms" extension is n

    安装完October后,打开站点是提示"Cms\Facades\Cms" extension is not ena...

  • October CMS Vs Wordpress

    十月CMS与WordPress是开发者考虑从WordPress迁移到另一个平台的一个常见问题。为了给出一个客观和基...

  • october cms数据API

    数据属性API october实现了不通过ajax的方式,实现表单的ajax提交的方式 代码区域 onHandle...

  • java CMS垃圾回收日志

    文章目录一、CMS垃圾回收器介绍二、CMS JVM运行参数三、CMS收集器运行过程1、初始标记(CMS initi...

  • October CMS Theme-翻译

    简介 主题定义了octobercms的外观,octobercms主题是完全基于文件并且可以使用任何版本的控制管理系...

  • 静态模板freeMarker页面静态化

    如果采用cms系统就可以实现由cms自动化对页面进行页面进行更新,自动采用静态化的技术就是生成html页面,快速上...

  • october主题介绍

    说明 主题或更换主题是针对于整个cms界面的。october主题是完全基于文件的,可以使用任何版本控制系统进行管理...

网友评论

    本文标题:october cms页面介绍二

    本文链接:https://www.haomeiwen.com/subject/isbisxtx.html