1

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

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

4

3 回答 3

2

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

 \web\sitecore\shell\Applications\Dialogs\Publish\

您需要更改 CodeBeside 它看起来像这样:

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

您的课程将是:

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;
          }
     }      

}

我测试过,这个解决方案运行良好,您只需对您的要求进行微小的更改。

于 2013-07-17T14:31:31.577 回答
1

这是帖子:Sitecore - 从发布弹出窗口中隐藏“发布子项”

您需要将CodeBeside属性从更改Sitecore.Shell.Applications.Dialogs.Publish.PublishForm,Sitecore.Client为您自己的包含该属性的类。在您自己的类中覆盖您需要的任何方法,以便逻辑根据您的需要显示或隐藏框,例如用户处于某个角色。

于 2013-07-17T12:48:10.087 回答
0

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

于 2013-07-17T20:40:29.467 回答