C# sitecore中是否自动接受克隆通知?
我有一个从另一个sitecore项目克隆的sitecore项目。将子项添加到父项时,我希望它也将该项添加到克隆下。它可以做到这一点,但我必须手动接受每个更改。我有250个克隆人 有没有一种方法可以自动接受这些通知,或者一开始就阻止他们这样做?中的“有人在评论”部分提出类似的问题: 为已克隆的项创建新子项时,它将 似乎您必须手动转到每个克隆并接受该子项 将在克隆下创建。有没有办法不必这样做? 对于一个新的解决方案,我们将有一个源和源的多个克隆 客户不希望访问每个克隆并接受子项。 总是有子项会更容易和用户友好 毫无疑问地出现在克隆中。这同样适用于 内容作者已覆盖克隆中的值的实例, 然后,“超级作者”更改源项中的值。这怎么可能 更改可以应用于所有克隆,而无需手动克隆 接受改变?干杯 sitecore发布了带有一些伪代码的回复。基本上,这可以转化为以下内容: 构建一个事件类 注册事件C# sitecore中是否自动接受克隆通知?,c#,sitecore,C#,Sitecore,我有一个从另一个sitecore项目克隆的sitecore项目。将子项添加到父项时,我希望它也将该项添加到克隆下。它可以做到这一点,但我必须手动接受每个更改。我有250个克隆人 有没有一种方法可以自动接受这些通知,或者一开始就阻止他们这样做?中的“有人在评论”部分提出类似的问题: 为已克隆的项创建新子项时,它将 似乎您必须手动转到每个克隆并接受该子项 将在克隆下创建。有没有办法不必这样做? 对于一个新的解决方案,我们将有一个源和源的多个克隆 客户不希望访问每个克隆并接受子项。 总是有子项会更容
在“评论”部分,有人问了一个类似的问题:
为已克隆的项创建新子项时,它将
似乎您必须手动转到每个克隆并接受该子项
将在克隆下创建。有没有办法不必这样做?
对于一个新的解决方案,我们将有一个源和源的多个克隆
客户不希望访问每个克隆并接受子项。
总是有子项会更容易和用户友好
毫无疑问地出现在克隆中。这同样适用于
内容作者已覆盖克隆中的值的实例,
然后,“超级作者”更改源项中的值。这怎么可能
更改可以应用于所有克隆,而无需手动克隆
接受改变?干杯
sitecore发布了带有一些伪代码的回复。基本上,这可以转化为以下内容:
构建一个事件类
注册事件
public abstract class AcceptCloneNotificationsEventBase<T> 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);
}
}
}
}
}
public class ImplementationOfBase:
AcceptCloneNotificationsEventBase<FieldChangedNotification>
{
protected override bool ShouldAcceptNotification(Item item, Item parent)
{
return /*filter the event as you see fit here*/;
}
}