Magnolia 5.7版本隐藏页面浏览器操作项的最优实现方案咨询
Magnolia 5.7隐藏页面浏览器操作项实现方案说明
结论
Magnolia 5.7完全支持通过YAML装饰器搭配!override语法实现操作项隐藏,该方案比你当前使用的info.magnolia.module.delta.RemoveNodesTask更优,无需执行模块升级任务,配置修改后即可生效,适配性和可维护性更强。
你之前配置不生效的原因
主要是路径或配置规范问题:
- 装饰器文件存放路径错误:必须放在自定义模块的
decorations/pages/apps/pages.yaml路径下,对应装饰pages模块自带的pages应用配置 - 缩进不符合要求:Magnolia的YAML配置要求严格2空格缩进,禁止使用tab,你提供的3种尝试配置都存在缩进不规范的问题
- 配置逻辑有误:没有按照装饰器的语法规则重写配置节点
正确实现方式
场景1:完全隐藏整个操作组
如果要直接隐藏整个versionActions操作组,不需要用!override,直接禁用组即可:
subApps: browser: actionbar: sections: pageActions: groups: versionActions: enabled: false
场景2:保留操作组,仅隐藏指定操作项
如果要保留组,只删除组内部分操作,用!override重写items列表即可,比如只保留导出操作、删除导入操作:
subApps: browser: actionbar: sections: pageActions: groups: versionActions: !override items: export: $type: exportAction
场景3:清空操作组下所有操作
如果要保留组但清空所有操作,直接重写items为空即可:
subApps: browser: actionbar: sections: pageActions: groups: versionActions: !override items: {}
方案对比
和你当前使用的RemoveNodesTask方案相比,装饰器方案的优势:
- 无需执行模块升级任务,不会因为环境差异出现节点删除失败的问题
- 配置可复用,迁移环境不需要重新执行任务
- 开发模式下支持热更新,修改配置后不需要重启实例即可验证效果
内容的提问来源于stack exchange,提问作者Ana Sustic
相关产品推荐
相关产品推荐

