【问题标题】:Unpublished / restricted items in Sitecore showing standard valuesSitecore 中显示标准值的未发布/受限项目
【发布时间】:2010-02-18 15:53:51
【问题描述】:

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

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

编辑:

  • 我所说的项目只有 一个版本。 (荷兰语 - 版本 1) 项目只是通过插入从 模板并填写信息。 填写完信息后, 设置了发布限制。 完成此操作且该项目未 在该日期内 限制我看到标准值@ 正面。

可以使用发布限制来确保信息仅在某个时间段内显示,对吗? 这是我们可以在代码中解决的问题吗?我们可以检查一个项目是否不在公共限制范围内/未发布?

【问题讨论】:

    标签: c# .net sitecore


    【解决方案1】:

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

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

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

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

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

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

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

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

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

    【讨论】:

    • 简而言之,如果您限制发布项目的所有版本,您最终会呈现标准值,即内容项目的版本“0”。
    【解决方案2】:

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

    解决方法取决于您的需要。例如,如果您想管理整个项目,请在项目级别设置发布限制。

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

    希望这会有所帮助。

    【讨论】:

    • 我编辑了我的问题,使其更加清晰!谢谢回答,但请重新检查我的问题
    • 至于你回答的最后一部分:我知道当一个项目未发布时,我将无法呈现该特定项目的值。我如何确保我的代码不会尝试。如果项目可发布/在发布限制日期内,是否有任何方法可以检查代码?这样,当我取消发布/限制时,我可以防止项目进入默认值模式。
    • 我看到每个项目都有一个选项来检查它在哪里是空的。当我使用此选项时,我可以在项目没有版本时隐藏标准值!
    • >> 我看到每个项目都有一个选项来检查它在哪里是空的 你在说什么选项?你在哪里找到它?看来我在这里失去了意义......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    相关资源
    最近更新 更多