Sitecore中未发布/受限制的项目显示标准值

时间:2010-02-18 15:53:51

标签: c# .net sitecore

是否可以在usercontrols / xslt渲染中检查某个项目的发布是否受限制或在Sitecore CMS中无法发布? 我们得到一些情况,我们向CMS的用户解释如何设置发布限制,并回答有关在网站上显示标准值的项目的问题。例如:

  • 我有一个项目,它包含包含信息的字段。
  • 我发布了这个项目,并且很好。内容正在网站上显示。
  • 我更改了发布限制,并说它只能发布于2010年2月23日至2010年2月25日。
  • 现在发生的事情是,当我再次发布网站时,之前正确显示的项目显示标准值。

编辑:

  • 我正在谈论的项目只有 一个版本。 (荷兰语 - 第1版) item只是通过插入来完成的 模板和充满信息。 充满信息后, 设置发布限制。 完成此操作后,该项目不是 属于那个日期 限制我看到标准值@ 前面。

发布限制可用于确保信息仅在某段时间内显示对吗? 这是我们可以在代码中修复的东西吗?我们可以检查项目是否在公共限制/未公布的范围内吗?

2 个答案:

答案 0 :(得分:2)

再次让其他用户选择检查这个问题的答案我会回答我自己的问题。

如果Sitecore的CMS中的用户指定了可以发布项目的范围,并且您看到前面出现标准值:

  • 查找类/渲染任何显示信息的内容
  • 确保您的代码正在检查可用版本

如果只有一个版本可用,就像我的情况一样,并且没有其他版本,而今天的日期超出指定范围做一个简单的Item.Empty检查就足够了。

每当您有一个需要处理的Sitecore项目时:

item有上下文语言的版本吗? - > item.Versions.Count

项目可能会发布? - > !item.Publishing.IsValid(DateTime.Today, false)

项目有布局?? - > item.Visualization.GetLayout(Sitecore.Context.Device)

我希望这些信息对某人有用!

答案 1 :(得分:0)

以下是您描述的行为的可能解释。您有多个版本的项目,当您将发布限制发布到您正在使用的版本(通常是最新版本)时,它将取消发布。如果现在可以发布的以前版本之一不会覆盖标准值,您将在前端看到这些标准值。

此修复程序取决于您的需求。例如,如果您希望管理整个项目,请在项目级别设置发布限制。

至于你的初始问题,项目的任何字段都可以通过用户控件/ XSL呈现来解决(例如,sc:fld函数)。但请记住,您正在从渲染中查询Web数据库。如果设置了发布限制,并且该项目不可发布,则不会从呈现/子布局中获取此项及其字段。

希望这有帮助。