如何使用SDL Tridion TOM.NET API获取页面或组件的已发布时间戳

时间:2012-04-10 15:56:26

标签: tridion

我正在尝试使用TOM.NET API获取给定目标或组件的已发布时间戳。在PageComponent对象下不是很明显,有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:7)

您可以使用PublishEngine.GetPublishInfo(IdentifiableObject)方法,它返回PublishInfo个对象的集合,其中包含可用于给定项目的日期和其他(发布)信息。

答案 1 :(得分:2)

感谢Bart上面的回答,我已经敲了下面的粗略代码。它与性能无关,因为这是向客户演示某些内容的概念证明:

// 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())) - 所以如果使用此代码段,请注意这些项目:)