将Silverstripe网站设置为CMS之外的Live版本

Bar*_*vet 3 silverstripe

我们有许多客户在使用Silverstripe CMS时感到困惑,然后他们的实时网站会显示草稿版本.

我们设置了" Better Navigator ",显示一个站点是否处于Draft或Live状态,但客户端仍然感到困惑(在某些视图中,Better Navigator按钮被遮挡).

理想情况下,如果在CMS之外查看实时网站,我们希望它只显示"实时"版本.

那可能吗?

3dg*_*goo 7

我们可以添加一些仅草稿CSS,而不是强制网站始终显示已发布的版本,以使用户更清楚地看到他们正在查看草稿版本.

创建一个draft.css文件,它将改变草稿版本的网站样式.在此示例中,我将更改body标记的背景以显示其上带有"草稿"字样的平铺图像.

mysite的/ CSS/draft.css

body {
    background-image: url(../images/draft-background.png);
}
Run Code Online (Sandbox Code Playgroud)

mysite的/图像/草案-background.png

草稿背景图片

在我们的Page_Controller init函数中,我们draft.css在当前阶段设置为时加载文件Stage:

Page_Controller

class Page_Controller extends ContentController
{

    public function init()
    {
        parent::init();

        // ...
        if ($this->current_stage() == 'Stage') {
            Requirements::css('mysite/css/draft.css');
        }
    }
    // ...
}
Run Code Online (Sandbox Code Playgroud)

最终结果如下所示:

草稿背景示例截图

这只是我们只能用草案css做的一个例子.或者,我们可以替换站点徽标,或在页面顶部显示警告栏.

以下是一些替代css,用于显示draft-background.png上述所有网站内容,而不是body标记的背景图片:

body:after {
    background-image: url(../images/draft-background.png);
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 1000;
    pointer-events: none;
    opacity: 0.25;
}
Run Code Online (Sandbox Code Playgroud)

下面是一些示例css,用于在每个页面的顶部显示警告栏:

body:after {
    content: "You are currently viewing a draft version of this page";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000;
    pointer-events: none;
    opacity: 0.75;
    text-align: center;
    background: #F7CA18;
    color: #000000;
    padding: 20px;
}

body {
    margin-top: 60px;
}
Run Code Online (Sandbox Code Playgroud)