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

时间:2013-07-17 11:24:26

标签: sitecore

我在Stackoverflow中看到过如何通过覆盖复选框的可见性来隐藏Sitecore发布弹出窗口中的“发布子项”。这非常好,当内容树中有大量内容时,可以避免这么多性能问题。

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

3 个答案:

答案 0 :(得分:2)

首先,您需要从Folder中更改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;
          }
     }      

}

我测试了它,这个解决方案正常工作,您只需对您的要求进行微小的更改。

答案 1 :(得分:1)

以下是帖子:Sitecore - Hide "Publish Subitems" from publish pop up

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

答案 2 :(得分:0)

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