Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 十月CMS-有条件地加载不同的页面_Php_Laravel_Octobercms - Fatal编程技术网

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

Php 十月CMS-有条件地加载不同的页面,php,laravel,octobercms,Php,Laravel,Octobercms,我正在10月份建立一个使用斜杠页面的CMS网站。启动页面只应该在非烹饪用户第一次访问网站时向他们显示。我通过名为splash的插件中的一个组件来控制这部分。下面是我的onRun()函数: public function onRun() { $key = 'shownsplash'; if(!Session::has($key) || !Cookie::get($key)) { $this->page['showsplash'] = true;

我正在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;
    }
}
在名为“default”的主页布局中,我希望使用以下命令有条件地加载名为“splash”的初始页面模板:

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

除了我不确定如何有条件地加载页面。另外一个要求是启动页面采用url,而不是任何后续页面。有人能指出怎么做吗?

在OctorberCMS/page中,cms/page被url命中,url是在配置部分设置的,并绑定到布局。所以对我来说,页面比html内容持有者更像是“路由”对象

事实上,partials是html内容持有者

因此,如果我必须做与你的意思相同的事情,我将使用partial和page。 带有url=“/”和两个部分的页面,一个用于常规页面,一个用于启动页面。 将插件组件绑定到页面而不是布局

{% if showsplash %}
    {% partial 'home/splash.htm' %}
{% else %}
    {% partial 'home/regular.html' %}
{% endif %}
我认为在这类有条件的东西中使用的正是partial。 一般认为

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

事实上,我最终使用了非常类似的东西。我会接受这个,因为它看起来确实有效。