Тридион 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). Поэтому, чтобы выполнить вашу задачу, я думаю, что вам требуется обновление.

Другие вопросы по тегам