10月CMS - 有条件地加载不同的页面

时间:2016-02-29 17:48:35

标签: php laravel octobercms

我正在使用斜杠页面在10月CMS中构建网站。启动页面只应在第一次访问该站点时向非烹饪用户显示。我通过一个名为splash的插件中的组件来控制这个部分。这是我的onRun()函数:

public function onRun()
{
    $key = 'shownsplash';
    if(!Session::has($key) || !Cookie::get($key))
    {
        $this->page['showsplash'] = true;
        Cookie::queue('shownsplash',true);
        Session::put($key,true);
        $resp = NULL;
    }
}

在我的主页面布局中,名为'默认'我想有条件地加载名为' splash'的启动页面模板。使用以下内容:

{% if showsplash %}
     {{ loadpage('splash') }}
{% else %}
     Regular page template
{% endif %}

除了我不确定如何有条件地加载页面。另外一个要求是,启动页面会使用网址 http://www.example.com 而不是后续网页。任何人都可以指出如何做到这一点吗?

1 个答案:

答案 0 :(得分:3)

在octobercms中,cms / page被url命中,url在config部分设置并绑定到布局。所以对于我而言,页面比html内容持有者更具“路由”对象。

事实上,部分是html内容持有者

因此,如果我必须做同样的事情,我会使用部分和页面。 一个页面,其中url =“/”和两个部分,一个用于常规页面,另一个用于初始化。 将您的插件组件绑定到页面而不是布局

{% if showsplash %}
    {% partial 'home/splash.htm' %}
{% else %}
    {% partial 'home/regular.html' %}
{% endif %}

我认为部分正是在这种有条件的东西中使用的。 一般都会想到

  • 布局为网站结构
  • 主要用于路由
  • 部分用于html内容