I'm trying to get hold of the published timestamp for a given page or component to a given target using the TOM.NET API. It isn't immediately obvious under the Page
or Component
object, can someone point me in the right direction?
You can use the PublishEngine.GetPublishInfo(IdentifiableObject)
method for that, it returns a collection of PublishInfo
objects which holds the dates and other (publish) information available for the given item.
Thanks to Bart's answer above, I've knocked up the following rough code. It's not about performance as this is a proof of concept to demo something to a customer:
// 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());
}
}
}
Here you can see I already have my childPage
object, and i'm adding the result to an existing page XML object (pageElem.SetAttribute("timestamp", publishInfo.PublishedAt.ToString())
) - so if using this snippet look out for these items :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With