【问题标题】:October CMS - Conditionally Load a Different Page十月 CMS - 有条件地加载不同的页面
【发布时间】:2016-06-12 21:01:59
【问题描述】:

我正在十月 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;
    }
}

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

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

除了我不确定如何有条件地加载页面。另一个要求是启动页面采用 URL http://www.example.com 而不是任何后续页面。谁能指出如何做到这一点?

【问题讨论】:

    标签: php laravel octobercms


    【解决方案1】:

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

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

    因此,如果我必须按照您的意思做同样的事情,我会使用部分和页面。 带有 url="/" 的页面和两个部分,一个用于常规页面,一个用于启动页面。 将您的插件组件绑定到页面而不是布局

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

    我认为 partial 正是在这种有条件的东西中使用的。 一般认为

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

    【讨论】:

    • 我实际上使用了非常相似的东西。我会接受它,因为它似乎确实有效。
    猜你喜欢
    • 2017-05-22
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2019-02-02
    • 2018-09-23
    • 2019-01-26
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多