Я пытаюсь получить опубликованную метку времени для данной страницы или компонента для заданной цели с использованием API TOM.NET. Не сразу очевидно, что объект Page
или Component
, может ли кто-нибудь указать мне в правильном направлении?Как получить опубликованную метку времени страницы или компонента с помощью SDL Tridion TOM.NET API
Q
Как получить опубликованную метку времени страницы или компонента с помощью SDL Tridion TOM.NET API
5
A
ответ
7
Для этого вы можете использовать метод PublishEngine.GetPublishInfo(IdentifiableObject)
, он возвращает коллекцию объектов PublishInfo
, которая содержит даты и другую (опубликованную) информацию, доступную для данного элемента.
2
Благодаря ответу Барта выше, я выбил следующий примерный код. Речь не идет о производительности, как это доказательство концепции демо-то клиент:
// if we are in publishing mode, figure out the target we are publishing to, and get the timestamp that the page is published to this target
if (engine.PublishingContext.PublicationTarget != null)
{
ICollection<PublishInfo> publishCollections = PublishEngine.GetPublishInfo(childPage);
foreach (PublishInfo publishInfo in publishCollections)
{
if (publishInfo.PublicationTarget == engine.PublishingContext.PublicationTarget)
{
pageElem.SetAttribute("timestamp", publishInfo.PublishedAt.ToString());
}
}
}
Здесь вы можете увидеть у меня уже есть childPage
объекта, и я прибавление результата к существующему объекту страницы XML (pageElem.SetAttribute("timestamp", publishInfo.PublishedAt.ToString())
), поэтому, если этот фрагмент будет выглядеть так:
Можете ли вы объяснить, когда вы пытаетесь получить доступ к этой информации? Это когда страница или компонент визуализируется или в какой-то более поздний момент после публикации? Вам также нужно знать эту информацию для конкретной цели? –