Sitecore用户编辑项创建新版本

Sitecore用户编辑项创建新版本,sitecore,Sitecore,在Sitecore中,对于所有没有管理员权限的用户(创建用户时是否未单击管理员复选框),当他们尝试编辑项目时,必须选择“锁定并编辑”选项,该选项将创建新版本,而不是编辑现有版本。有没有一种方法可以让非管理员用户在不创建新版本的情况下编辑项目? 我希望这是否可以通过用户角色来实现。这是Sitecore默认的锁定行为 Sitecore使用项目锁定来确保两个不同的用户不能同时编辑同一个项目。如果两个或多个用户以某种方式同时编辑同一项目,则只有单击“最后保存”的用户所做的更改才可用。所有其他更改都将丢失

在Sitecore中,对于所有没有管理员权限的用户(创建用户时是否未单击管理员复选框),当他们尝试编辑项目时,必须选择“锁定并编辑”选项,该选项将创建新版本,而不是编辑现有版本。有没有一种方法可以让非管理员用户在不创建新版本的情况下编辑项目?
我希望这是否可以通过用户角色来实现。

这是Sitecore默认的锁定行为

Sitecore使用项目锁定来确保两个不同的用户不能同时编辑同一个项目。如果两个或多个用户以某种方式同时编辑同一项目,则只有单击“最后保存”的用户所做的更改才可用。所有其他更改都将丢失。项目锁定是一种系统,通过该系统,您可以锁定正在编辑的项目,并阻止其他用户编辑此项目,直到您在编辑完项目后再次将其解锁。项目锁定的工作方式因您使用的工具而异。 在页面编辑器中,您可以在开始编辑项目之前锁定该项目。在内容编辑器中,您必须在编辑项目之前锁定该项目

您可以找到有关锁定的更多信息

请从web.config查看此设置:

     <!--
     REQUIRE LOCK BEFORE EDITING
        If true, the user must have a lock on a document before
        he can edit it, otherwise it is always ready for editing

      -->
     <setting name="RequireLockBeforeEditing" value="true"/>

    <!--
        KEEP LOCK AFTER SAVE FOR ADMIN USERS
        Set this value to true if you want to Administrator users to keep the lock on     an item after saving
        it in the Page Editor.
        Notice: For regular users, the "Keep Lock After Save" item in the core database will determine whether
        to keep the lock or not.
        Default value: false
   -->
    <setting name="KeepLockAfterSaveForAdminUsers" value="false"/>
    <!--
   AUTOMATIC LOCK ON SAVE
        If true, the a lock is automatically taken on an item
        when a user saves the item.
   -->
  <setting name="AutomaticLockOnSave" value="false"/>
    <!--
  AUTOMATIC UNLOCK ON SAVED
        If true, the a saved item is automatically unlocked after
        saving.
    -->
    <setting name="AutomaticUnlockOnSaved" value="false"/>

以下是编辑Sitecore项目时负责创建新版本的代码:

公共项目启动(项目)
{
错误。AssertObject((对象)项,“项”);
如果(!Settings.RequireLockBeforeEditing | | Context.User.IsAdministrator)
退货项目;
如果(this.u context.IsAdministrator | | | StandardValuesManager.IsStandardValuesHolder(item)| |!this.HasWorkflow(item)&&!this.HasDefaultWorkflow(item)| |!this.IsApproved(item))
返回此。锁(项目);
Item obj=Item.Versions.AddVersion();
如果(obj!=null)
返回此.锁(obj);
其他的
返回(项目)为空;
}
显然,若项目处于任何工作流的最终状态,则Sitecore会创建新版本,除非用户是管理员


您可以尝试在编辑之前更改
requirelock设置,但它不仅会禁用新版本功能,还会禁用锁定功能。

您可以通过在de web.config中编辑此选项来关闭此设置->

<setting name="RequireLockBeforeEditing" value="true"/>

阅读更多关于它的信息


祝你好运

你知道为什么它不适用于管理员吗?因为当管理员编辑它时,不会创建新版本。因为通常管理员不必创建新版本,因为他们可以将任何内容发布到web上。通常,当使用附加到工作流的模板创建新版本时,此新版本将推送到工作流,从而实现受控发布。内容在以这种方式发布之前必须经过批准。(由管理员/审批人)删除或删除工作流(如果您不想要新版本,则可能不需要工作流)