October CMS - 有条件地加载不同的页面
October CMS - Conditionally Load a Different Page
我正在 October CMS 中构建一个使用斜线页面的网站。启动页面只应在非 cookie 用户第一次访问该站点时显示给他们。我通过一个名为 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 http://www.example.com 而不是任何后续页面。谁能指出如何做到这一点?
在 octobercms cms/page 中被 url 击中,url 在配置部分中设置并绑定到布局。所以对我来说,页面 'routing' 对象多于 html 内容持有者。
事实上部分内容是 html 内容持有者
因此,如果我必须按照您的意思做同样的事情,我会使用部分和页面。
带有 url="/" 和两个部分的页面,一个用于常规页面,一个用于初始页面。
将您的插件组件绑定到页面而不是布局
{% if showsplash %}
{% partial 'home/splash.htm' %}
{% else %}
{% partial 'home/regular.html' %}
{% endif %}
我认为部分正是在这种有条件的东西中使用的东西。
一般认为
- 作为网站结构的布局
- 页面主要用于路由
- 部分 html 内容
我正在 October CMS 中构建一个使用斜线页面的网站。启动页面只应在非 cookie 用户第一次访问该站点时显示给他们。我通过一个名为 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 http://www.example.com 而不是任何后续页面。谁能指出如何做到这一点?
在 octobercms cms/page 中被 url 击中,url 在配置部分中设置并绑定到布局。所以对我来说,页面 'routing' 对象多于 html 内容持有者。
事实上部分内容是 html 内容持有者
因此,如果我必须按照您的意思做同样的事情,我会使用部分和页面。 带有 url="/" 和两个部分的页面,一个用于常规页面,一个用于初始页面。 将您的插件组件绑定到页面而不是布局
{% if showsplash %}
{% partial 'home/splash.htm' %}
{% else %}
{% partial 'home/regular.html' %}
{% endif %}
我认为部分正是在这种有条件的东西中使用的东西。 一般认为
- 作为网站结构的布局
- 页面主要用于路由
- 部分 html 内容