当用户选择“编辑”时,我们的 Sitecore 实例会自动设置对当前日期/时间的项目的发布限制。仅当 RequireLockBeforeEditing=true 时才会出现这种情况。这是预期的行为吗?为什么会发生这种情况?有办法将其关闭吗?
<setting name="RequireLockBeforeEditing" value="true" />是默认设置,当作者选择“编辑”时,将导致新项目版本被放入草稿中。Publishable From在这种情况下,Sitecore为新版本分配日期/时间是正常的。这与其说是限制,不如说是创建该版本的日期/时间戳。
需要日期,因为它用于确定哪个版本应该上线。如果没有设置“起始”日期,则该版本将不可发布。
至于您的自定义代码,如果您将其发布在这里,我也许可以帮助您避免它与 Sitecore 的默认行为发生冲突。您可以执行一些简单的检查,例如如果可发布日期与上次更新日期匹配,则忽略编辑。

编辑:
与其修改 Sitecore 的默认行为(这可能会在稍后影响您),不如考虑检查正在编辑的项目是否是全新的。添加新版本时,项目的创建日期和有效日期字段将匹配。
public void OnItemSaving(object sender, EventArgs args)
{
try
{
Item item = Event.ExtractParameter(args, 0) as Item;
ItemChanges itemChanges = Event.ExtractParameter(args, 1) as ItemChanges;
// Ensure that a change was made to the valid to/from fields
if (item != null &&
itemChanges != null &&
itemChanges.FieldChanges.ContainsAnyOf(FieldIDs.ValidFrom, FieldIDs.ValidTo))
{
// Ensure that the item is not brand new (such as when an author locks or clicks Edit)
if (item.Publishing.ValidTo != DateTime.MaxValue ||
item.Publishing.ValidFrom.ToString("MMddyyyyHHmmss") !=
item.Statistics.Created.ToString("MMddyyyyHHmmss"))
{
// Do work here...
}
}
}
catch (Exception ex)
{
Log.Error("Error in item:saved event", ex, this);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
722 次 |
| 最近记录: |