在Sitecore内容树中,应为内容编辑器提供一个选项,可以一键向所有子项和子子项添加“测试”渲染。
我添加了一个自定义菜单选项(在父页面的右键单击上),以向所有子项和子子项(具有演示文稿的详细信息)添加渲染。
在Sitecore 8.1版本中,在sitecore核心数据库中添加了新命令,并创建了一个类来覆盖execute方法。
试图获取当前项目的渲染,并检查是否存在“测试”渲染。 例如:我有客户项目,在此之下有客户1,客户2项目。 在“客户1”下,可能还会有带有演示文稿详细信息的子子项。
在客户端项目上单击鼠标右键,将有一个自定义按钮以“添加测试渲染”,单击该按钮时,应执行命令并将渲染添加到所有子项和子子项。
Database masterDatabase = Database.GetDatabase("master");
Item sampleItem = masterDatabase.GetItem(commandContext.Items[0].Paths.Path);
string renderingXml = sampleItem["__Renderings"];
var originalLayoutXml = Sitecore.Data.Fields.LayoutField.GetFieldValue(sampleItem.Fields[Sitecore.FieldIDs.LayoutField]);
var oldLayout = LayoutDefinition.Parse(originalLayoutXml);
var oldRenderings = (oldLayout.Devices[0] as DeviceDefinition).Renderings;
预期结果:如果(测试渲染不存在),内容编辑器需要向所有子项和子子项添加新的渲染。