2012-04-10 5 views
5

Sto cercando di ottenere il timestamp pubblicato per una determinata pagina o componente per una determinata destinazione utilizzando l'API TOM.NET. Non è immediatamente evidente sotto l'oggetto Page o Component, qualcuno può indicarmi la giusta direzione?Come ottenere il timestamp pubblicato di una pagina o componente utilizzando l'API SDL Tridion TOM.NET

+1

Puoi spiegare quando stai tentando di accedere a queste informazioni? È quando viene eseguito il rendering della Pagina o del Componente, o in un secondo momento dopo che si è verificata la pubblicazione? Hai anche bisogno di conoscere queste informazioni per un target specifico? –

risposta

7

È possibile utilizzare il metodo PublishEngine.GetPublishInfo(IdentifiableObject) per questo, restituisce una raccolta di oggetti PublishInfo che contiene le date e altre informazioni (pubblicate) disponibili per l'articolo specificato.

2

Grazie alla risposta di Bart sopra riportata, ho annullato il seguente codice approssimativo. Non si tratta di prestazioni come questa è una prova di concetto demo qualcosa 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()); 
    } 
    } 
} 

Qui potete vedere ho già la mia childPage oggetto, e sto aggiungendo il risultato a un oggetto pagina XML esistente (pageElem.SetAttribute("timestamp", publishInfo.PublishedAt.ToString())), quindi se si utilizza questo snippet cerca questi elementi :)