SilverStripe草稿内容状态

时间:2016-03-12 14:41:34

标签: silverstripe

在我的网站上查看草稿页面/内容时,是否有一种简单的方法来识别草稿内容?我希望能够识别草稿内容,并为发布的内容设置不同的样式。

我希望找到类似的东西:

<% if $status == 'draft' %>
...
<% end_if %>

2 个答案:

答案 0 :(得分:2)

SilverStripe页面存储在SiteTreeSiteTree_Live表中。前一个表包含草稿内容(内部称为Stage阶段),后一个包含已发布内容(Live stage)。 SiteTree_versions表包含页面的所有修改版本。

当您在生产中请求页面时,默认情况下会从Live阶段读取该页面。当您在CMS中看到预览时,您可以在各个阶段之间切换。

您可以按照以下

获取版本化阅读阶段
<% if $CurrentReadingMode = 'Stage.Stage' %>
    Draft content
<% end_if %>

<% if $CurrentReadingMode = 'Stage.Live' %>
    Published content
<% end_if %>

答案 1 :(得分:1)

您可以查看https://github.com/jonom/silverstripe-betternavigator模块,该模块在右上角显示一个漂亮的红色(草稿)或绿色(实时)状态栏(以及一个方便的菜单,例如编辑此页面):

Demo image taken from the module's page

只需使用composer安装它,然后将$BetterNavigator放在模板中的某个位置。如果您的网站使用缓存,请确保排除BetterNavigator的输出。

您还可以对其进行配置,以便在您处于开发模式或登录时显示它。

我通常使用这样的东西,以避免在我处于开发模式时向所有人展示:

<% if $CurrentUser %>
    $BetterNavigator
<% end_if %>