是否可以在usercontrols / xslt渲染中检查某个项目的发布是否受限制或在Sitecore CMS中无法发布? 我们得到一些情况,我们向CMS的用户解释如何设置发布限制,并回答有关在网站上显示标准值的项目的问题。例如:
编辑:
发布限制可用于确保信息仅在某段时间内显示对吗? 这是我们可以在代码中修复的东西吗?我们可以检查项目是否在公共限制/未公布的范围内吗?
答案 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数据库。如果设置了发布限制,并且该项目不可发布,则不会从呈现/子布局中获取此项及其字段。
希望这有帮助。