В моей установке Sitecore 6.1.0 я подключился к событию «item: добавлен», реализовав свой собственный обработчик следующим образом (в Web.config):
<event name="item:added">
<handler type="Sitecore.Data.Fields.ItemEventHandler, Sitecore.Kernel" method="OnItemAdded" />
<handler type="my.project.Classes.OnSaveItemHandler, my.project" method="OnItemAdded" />
</event>
Цель этого состоит в том, чтобы обеспечить уникальные имена для элементов - другими словами, в моем методе OnItemAdded я хочу выполнить поиск Lucene для любых других элементов с тем же именем, что и добавляемый элемент.
Метод OnItemAdded вызывается каждый раз, когда элемент добавляется в структуру Sitecore. Но моя проблема в том, что метод вызывается более одного раза за элемент . Я видел, как он вызывается где-то между 6 и 26 раз за добавленный элемент, в зависимости от того, где в структуре Sitecore я добавляю элемент. Тело моего метода OnItemAdded пусто:
protected void OnItemAdded(object obj, EventArgs args)
{
}
При первом вызове метода при добавлении элемента элемент в параметре args
является правильным элементом. Если имя элемента theItemName
, свойство FullPath будет выглядеть следующим образом:
/sitecore/content/theItemName
Каждый раз, за исключением первого, элемент выглядит правильным, но путь элемента выглядит так:
[orphan]/sitecore/content/theItemName
Почему бит [сирота] добавляется на полный путь? И почему метод OnItemAdded вызывается более одного раза, хотя я добавляю только один элемент?