2012-04-10 9 views
5

Estoy tratando de obtener la marca de tiempo publicada para una página o componente determinado para un objetivo determinado utilizando la API de TOM.NET. No es inmediatamente obvio bajo el objeto Page o Component, ¿alguien puede señalarme en la dirección correcta?Cómo obtener la marca de tiempo publicada de una página o componente utilizando SDL Tridion TOM.NET API

+1

¿Puede explicarme cuándo intenta acceder a esta información? ¿Es cuando se procesa la página o el componente, o en algún momento posterior a la publicación? ¿También necesita saber esta información para un objetivo específico? –

Respuesta

7

Puede usar el método PublishEngine.GetPublishInfo(IdentifiableObject) para eso, devuelve una colección de objetos PublishInfo que contiene las fechas y otra información (publicación) disponible para el artículo dado.

2

Gracias a la respuesta de Bart anterior, he recogido el siguiente código aproximado. No se trata de rendimiento, ya que es una prueba de concepto de demostración de algo a un cliente:

// 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()); 
    } 
    } 
} 

Aquí se puede ver que ya tengo mi objetivo childPage, y estoy añadiendo el resultado a un objeto de página XML existente (pageElem.SetAttribute("timestamp", publishInfo.PublishedAt.ToString())) - así que si utiliza este fragmento, busque estos elementos :)

Cuestiones relacionadas