我在Stackoverflow中看到过如何通过覆盖复选框的可见性来隐藏Sitecore发布弹出窗口中的“发布子项”。这非常好,当内容树中有大量内容时,可以避免这么多性能问题。
是否可以动态隐藏此复选框? Coz,作为开发人员,我需要在部署时发布其他Sitecore项目(模板,设置等)。因此,“发布子项”对我来说是一个必不可少的功能。我仍然需要隐藏内容编辑器。 我怎样才能完成这项任务? (如果有一个安全配置来控制对此功能的访问,那将是理想的)
答案 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,而是您自己的逻辑。