Sitecore-动态填充发布子项复选框

Sitecore-动态填充发布子项复选框,sitecore,Sitecore,我在Stackoverflow中看到了一篇关于如何通过覆盖复选框的可见性从Sitecore发布弹出窗口隐藏“发布子项”的帖子。这真的很好,当内容树中有大量内容时,可以避免许多性能问题 是否可以动态隐藏此复选框?因为,作为一名开发人员,当涉及到部署时,我需要发布其他Sitecore项目(模板、设置等)。因此,“发布子项”对我来说是一项基本功能。我仍然需要对内容编辑器隐藏它。 我怎样才能完成这项任务? (如果有一个安全配置来控制对该功能的访问,那将是理想的)以下是帖子: 您需要将Sitecore.S

我在Stackoverflow中看到了一篇关于如何通过覆盖复选框的可见性从Sitecore发布弹出窗口隐藏“发布子项”的帖子。这真的很好,当内容树中有大量内容时,可以避免许多性能问题

是否可以动态隐藏此复选框?因为,作为一名开发人员,当涉及到部署时,我需要发布其他Sitecore项目(模板、设置等)。因此,“发布子项”对我来说是一项基本功能。我仍然需要对内容编辑器隐藏它。 我怎样才能完成这项任务? (如果有一个安全配置来控制对该功能的访问,那将是理想的)

以下是帖子:


您需要将
Sitecore.Shell.Applications.Dialogs.Publish.PublishForm、Sitecore.Client
中的
code旁边的
属性更改为您自己的类,该类封装了该属性。在您自己的类中,重写您需要的任何方法,以便逻辑根据您的需要显示或隐藏框,例如,用户处于特定角色。

首先,您需要更改文件夹中的Publish.xml文件:

 \web\sitecore\shell\Applications\Dialogs\Publish\
您需要更改代码,它将如下所示:

   <WizardForm CodeBeside="YourNameSpace.CustomPublishForm,YourAssembly">
}


我测试了这个解决方案,它运行良好,您只需对您的需求做一些小的更改

请注意,这样的修改会使升级更加困难。
复制
Publish.xml
并从一个新按钮触发它,这让每个人都清楚,这不是Sitecore,而是你自己的逻辑。

你有到另一篇文章的链接吗?所以我们可以看看代码并帮助您扩展它。非常感谢。这正是我想要的。但我只是担心在升级时如何处理这些东西。有什么计划吗?
class CustomPublishForm:PublishForm
{
    public CustomPublishForm()
        : base()
    {

    }
    protected override void OnLoad(System.EventArgs e)
    {
        base.OnLoad(e);
        //you need to change here with users that you want to see CheckBox
        if (Sitecore.Context.User.Name.Equals("lorenipsum"))
         {
            base.PublishChildren.Visible = true;
         }else
          {
            base.PublishChildren.Visible = false;
          }
     }