Sitecore可防止删除组件
我有一个页面,当用户创建它时,它会在占位符中插入一些预定义的组件(例如gallery和header) 我还希望web masters能够自由地在预定义组件周围的占位符中插入其他可能的组件,但我希望以某种方式禁止编辑/删除页面中的预定义组件(图库和页眉) 但是,内容编辑器可以将另一个库组件(技术上可能)添加到同一页面,并在需要时将其删除。但是不应该触摸预定义组件(至少要从占位符中删除。换句话说,我不希望在体验编辑器中预定义组件旁边有一个删除按钮) 有一种方法可以完全禁止编辑组件渲染,但我仍然希望web管理员自己插入组件(如果他们愿意)。我只是希望他们不要修改创建页面时出现的组件Sitecore可防止删除组件,sitecore,sitecore8,sitecore8.1,Sitecore,Sitecore8,Sitecore8.1,我有一个页面,当用户创建它时,它会在占位符中插入一些预定义的组件(例如gallery和header) 我还希望web masters能够自由地在预定义组件周围的占位符中插入其他可能的组件,但我希望以某种方式禁止编辑/删除页面中的预定义组件(图库和页眉) 但是,内容编辑器可以将另一个库组件(技术上可能)添加到同一页面,并在需要时将其删除。但是不应该触摸预定义组件(至少要从占位符中删除。换句话说,我不希望在体验编辑器中预定义组件旁边有一个删除按钮) 有一种方法可以完全禁止编辑组件渲染,但我仍然希望w
据我所知,这可以在RenderingReference级别上进行,但我不知道如何进行。你能给我一点小费吗?好的,我已经找到了一种方法。 以防有人需要它 首先,我们需要创建一个处理器来捕获体验编辑器中的页面渲染
public class CheckLockedComponentsHandler : GetClientActionsChromeData
{
public new void Process(GetChromeDataArgs args)
{
if (args.ChromeType == "rendering")
{
if (args.CustomData["renderingReference"] is RenderingReference rf && !string.IsNullOrEmpty(rf.Settings.Parameters))
{
var rmParams = WebUtil.ParseUrlParameters(rf.Settings.Parameters);
args.ChromeData.Custom["editable"] = string.IsNullOrEmpty(rmParams["editable"]) ? "true" : rmParams["editable"];
}
}
}
}
当创建锁定组件时,我们添加属性editable=false。
最后,我们需要在配置中注册处理器
<pipelines>
<getChromeData>
<processor type="CheckLockedComponentsHandler,MyLib" patch:after="*[last()]"/>
</processor>
<getChromeData>
</pipelines>
最好在上问这个问题