2012-04-10 26 views
5

Tôi đang cố gắng giữ dấu thời gian được xuất bản cho một trang hoặc thành phần nhất định cho một mục tiêu cụ thể bằng API TOM.NET. Nó không phải là ngay lập tức rõ ràng dưới các đối tượng Page hoặc Component, ai đó có thể chỉ cho tôi đi đúng hướng?Cách lấy dấu thời gian được xuất bản của một trang hoặc thành phần bằng SDL Tridion TOM.NET API

+1

Bạn có thể giải thích khi bạn đang cố truy cập thông tin này không? Có phải khi Trang hoặc Thành phần được hiển thị hay tại một số điểm sau này sau khi xuất bản đã xảy ra? Bạn cũng cần phải biết thông tin này cho một mục tiêu cụ thể? –

Trả lời

7

Bạn có thể sử dụng phương thức PublishEngine.GetPublishInfo(IdentifiableObject) cho điều đó, nó trả về bộ sưu tập PublishInfo đối tượng chứa ngày tháng và thông tin khác (xuất bản) có sẵn cho mục đã cho.

2

Nhờ câu trả lời của Bart ở trên, tôi đã gõ mã thô sau. Nó không phải về hiệu suất vì đây là một bằng chứng của khái niệm để giới thiệu một cái gì đó cho một khách hàng:

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

đây bạn có thể thấy tôi đã có đối tượng childPage của tôi, và tôi đang bổ sung thêm kết quả đến một đối tượng trang XML hiện có (pageElem.SetAttribute("timestamp", publishInfo.PublishedAt.ToString())) - vì vậy nếu sử dụng đoạn mã này, hãy tìm những mục này :)

Các vấn đề liên quan