在我的网站上查看草稿页面/内容时,是否有一种简单的方法来识别草稿内容?我希望能够识别草稿内容,并为发布的内容设置不同的样式。
我希望找到类似的东西:
<% if $status == 'draft' %>
...
<% end_if %>
答案 0 :(得分:2)
SilverStripe页面存储在SiteTree
和SiteTree_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模块,该模块在右上角显示一个漂亮的红色(草稿)或绿色(实时)状态栏(以及一个方便的菜单,例如编辑此页面):
只需使用composer安装它,然后将$BetterNavigator
放在模板中的某个位置。如果您的网站使用缓存,请确保排除BetterNavigator的输出。
您还可以对其进行配置,以便在您处于开发模式或登录时显示它。
我通常使用这样的东西,以避免在我处于开发模式时向所有人展示:
<% if $CurrentUser %>
$BetterNavigator
<% end_if %>