当前位置:  开发笔记 > 编程语言 > 正文

无论如何在sitecore中自动接受克隆通知吗?

如何解决《无论如何在sitecore中自动接受克隆通知吗?》经验,为你挑选了1个好方法。

我有一个sitecore项目,已从另一个sitecore项目克隆.当我向父项添加子项时,我希望它也在克隆下添加项.它这样做但我必须手动接受每个更改.我有250个克隆!

在此输入图像描述 有没有办法自动接受这些通知或阻止它们首先执行此操作?



1> Liam..:

在sitecore的这篇文章中,有人在评论部分提出了类似的问题:

当您为已克隆的项创建新的子项时,您似乎必须手动转到每个克隆并接受在克隆下创建子项.有没有办法不必这样做?对于一个新的解决方案,我们将有几个克隆来自一个来源,客户不希望去每个克隆并接受一个子项目.在没有任何问题的情况下,子项总是出现在克隆中会更容易和用户友好.这同样适用于内容作者覆盖克隆中的值的实例,然后"权限作者"更改源项目中的值.如果没有克隆必须手动接受更改,如何将此更改应用于所有克隆?干杯

sitecore发布了一些带有伪代码的回复.基本上这可以转化为以下内容:

构建一个事件类

public abstract class AcceptCloneNotificationsEventBase where T : Notification
{
    protected abstract bool ShouldAcceptNotification(Item item, Item parent);

    public void AcceptClone_SavedItem(object sender, EventArgs args)
    {
        var item = (Item)Event.ExtractParameter(args, 0);
        var parent = item.Parent;
        foreach (var clone in item.GetClones())
        {
            foreach (var notification in clone.Database.NotificationProvider.GetNotifications(clone.Uri))
            {
                if (notification is T && ShouldAcceptNotification(item, parent)) 
                {
                    notification.Accept(clone);
                }
            }
        }
    }

    public void AcceptClone_CreateItem(object sender, EventArgs args)
    {
        var item = (Item)Event.ExtractParameter(args, 0);
        var parent = item.Parent;
        foreach (var clone in parent.GetClones())
        {
            foreach (var notification in clone.Database.NotificationProvider.GetNotifications(clone.Uri))
            {
                if (notification is T && ShouldAcceptNotification(item, parent)) 
                {
                    notification.Accept(clone);
                }
            }
        }
    }
}

我把它建成了一个abstract类,所以我可以多次使用它.实现如下:

public class ImplementationOfBase: 
             AcceptCloneNotificationsEventBase
{
    protected override bool ShouldAcceptNotification(Item item, Item parent)
    {
        return /*filter the event as you see fit here*/;
    }
}

注册活动


  
    
  
  
    
  

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有