我们有许多客户在使用Silverstripe CMS时感到困惑,然后他们的实时网站会显示草稿版本。
我们已经设置了" Better Navigator"显示网站是否处于草稿或实时但客户端仍然感到困惑(在某些视图中,更好的导航器按钮被遮挡)。
理想情况下,如果在CMS之外查看实时网站,我们希望它只显示" Live"版本
这可能吗?
答案 0 :(得分:7)
我们可以添加一些仅草稿的CSS,而不是强制网站始终显示已发布的版本,以便让用户更清楚他们正在查看草稿版本。
创建一个draft.css
文件,该文件将改变草稿版本的网站样式。在此示例中,我将更改body
标记的背景,以显示带有"草稿"在它上面。
<强> mysite的/ CSS / draft.css 强>
body {
background-image: url(../images/draft-background.png);
}
<强> 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');
}
}
// ...
}
最终结果如下所示:
这只是我们只能用草案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;
}
以下是一些示例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;
}