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
5
A
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 :)
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? –