Тридион 2009 - Определите, кто опубликовал страницу
Нам нужно определить, кто инициировал публикацию страницы Tridion 2009: редактор или код.
Пожалуйста, используйте в качестве примера: Публикация A Публикация B, которая наследуется от A
Теперь, когда мы публикуем страницу в публикации A, используя "Также публиковать / отменять публикацию в дочерних публикациях", система событий будет запускаться для страницы в публикации A, а также для страницы в публикации B.
В этом случае мы хотим использовать систему событий только на странице из публикации A
Что-то вроде:
public override void OnPageSetPublishedToPost(Page page, string publicationTarget, bool published, string user)
{
if (!page.IsTriggeredByParent)
{
// do stuff
}
}
Проблема в том, что мы не знаем, как определить значение для "IsTriggeredByParent".
Спасибо за ваше время
1 ответ
В SDL Tridion 2009 это невозможно, в системе событий на основе COM нет способа определить, откуда произошло событие.
В системе событий SDL Tridion 2011 .NET у вас есть доступ к стеку событий. Это означает, что вы можете определить, выполняется ли действие как часть другого действия (например, при сохранении в VersionedItem с параметром true также будет отмечен элемент и будет инициировано это событие как часть события Save). Поэтому, чтобы выполнить вашу задачу, я думаю, что вам требуется обновление.