2012-04-10 11 views
5

Próbuję uzyskać opublikowany znacznik czasu dla danej strony lub składnika do danego celu za pomocą TOM.NET API. Nie jest to od razu oczywiste pod obiektem Page lub czy ktoś może wskazać mi właściwy kierunek?Jak uzyskać opublikowany znacznik czasu strony lub komponentu przy użyciu SDL Tridion TOM.NET API

+1

Czy możesz wyjaśnić, kiedy próbujesz uzyskać dostęp do tych informacji? Czy to jest po renderowaniu strony lub komponentu, czy w jakimś późniejszym momencie po opublikowaniu? Czy musisz znać te informacje dla określonego celu? –

Odpowiedz

7

Możesz użyć do tego metody PublishEngine.GetPublishInfo(IdentifiableObject), która zwraca kolekcję obiektów PublishInfo, która przechowuje daty i inne (publikowane) informacje dostępne dla danego przedmiotu.

2

Dzięki powyższej odpowiedzi Barta, zapukałem do następującego kodu. Tu nie chodzi o wydajność, gdyż jest to dowód koncepcji demo coś do klienta:

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

Tutaj można zobaczyć Mam już childPage obiekt, a Dodaję wynik do istniejącego obiektu strona XML (pageElem.SetAttribute("timestamp", publishInfo.PublishedAt.ToString())) - jeśli korzystasz z tego fragmentu, wypatruj tych elementów :)

Powiązane problemy