Ich versuche, den veröffentlichten Zeitstempel für eine bestimmte Seite oder Komponente zu einem bestimmten Ziel mithilfe der TOM.NET-API zu erhalten. Es ist nicht sofort offensichtlich unter dem Page
oder Component
Objekt, kann mir jemand in die richtige Richtung zeigen?So erhalten Sie den veröffentlichten Zeitstempel einer Seite oder Komponente mithilfe von SDL Tridion TOM.NET-API
5
A
Antwort
7
Sie können die PublishEngine.GetPublishInfo(IdentifiableObject)
Methode dafür verwenden, es gibt eine Sammlung von PublishInfo
Objekte zurück, die die Daten und andere (veröffentlichen) Informationen für den gegebenen Artikel verfügbar hält.
2
Dank Bart's Antwort oben, habe ich den folgenden groben Code geklopft. Es geht nicht um Leistung, da dies ein Proof of Concept ist etwas an einen Kunden zur Demo:
// 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());
}
}
}
Hier können Sie sehen, ich meine schon childPage
Gegenstand haben, und ich bin Addieren des Ergebnisses zu einer bestehenden Seite XML-Objekt (pageElem.SetAttribute("timestamp", publishInfo.PublishedAt.ToString())
) - Wenn Sie dieses Snippet verwenden, achten Sie auf folgende Elemente :)
Können Sie erklären, wenn Sie versuchen, auf diese Informationen zuzugreifen? Ist es, wenn die Seite oder Komponente wiedergegeben wird, oder zu einem späteren Zeitpunkt nach der Veröffentlichung? Müssen Sie diese Informationen auch für ein bestimmtes Ziel kennen? –