1

我了解您可以在克隆数据项时添加新的使用通知。

你在哪里指定你应该在哪里使用自定义通知类?

4

1 回答 1

1

我们会在已克隆的项目上显示警告。诀窍是使用“getContentEditorWarnings”管道:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
        <pipelines>
            <getContentEditorWarnings>
                <processor type="Example.OriginalItem, Example" patch:after="processor[@type='Sitecore.Pipelines.GetContentEditorWarnings.Notifications, Sitecore.Kernel']" />
            </getContentEditorWarnings>
        </pipelines>
    </sitecore>
</configuration>  

那么这个管道的代码是:

using Sitecore.Globalization;
using Sitecore.Pipelines.GetContentEditorWarnings;

namespace Example
{
    public class OriginalItem
    {
        public void Process(GetContentEditorWarningsArgs args)
        {
            var item = args.Item;

            if ((item == null) || item.GetClones().Count() == 0) return;
            var warning = args.Add();
            warning.Title = "This Item has clones";
            warning.IsExclusive = false;
        }
    }
}

与您的问题并不密切相关,但在此示例中,我们使用链接 db 来查找该项目是否具有克隆:

public static IEnumerable<Item> GetClones(this Item original)
{
    Assert.ArgumentNotNull(original, "source");
    return (from link in Globals.LinkDatabase.GetReferrers(original)
            select link.GetSourceItem() into clone
            where ((clone != null) && (clone.Source != null)) && (clone.Source.ID == original.ID)
            select clone);
}
于 2013-06-21T16:46:04.910 回答