我不是真正理解你的陳述,而是發表到特定的出版物。一個頁面駐留在一個發佈中,並且可以發佈到一個或多個發佈目標(並且這可以針對頁面駐留的每個發佈完成,以防藍色打印)。
因此,要確定某個頁面是否已發佈,您需要檢查它是否已發佈到至少一個目標。這可以通過OrganizationalItemItemsFilter直接在列表中完成。返回的列表會顯示每個項目是否在發佈:
<tcm:Item ID="tcm:2-46-64" Title="p" Type="64" Modified="2012-03-19T16:21:10" IsNew="false" Icon="T64L0P0" IsPublished="false" Lock="0" IsShared="false" IsLocalized="false" Trustee="tcm:0-0-0" />
這裏可以看到,頁面中醫認爲:2-46-64尚未發佈。如果我們進一步調查該頁面的唯一ID,我們會看到它駐留在Publication tcm:0-2-1(發佈ID是項目的TCM URI中的第一個數字)。
現在,如果屬性IsPublished的值爲「true」,則表示此頁面(在其發佈中)至少會發布到一個目標。
要找出該頁面發佈到哪個目標,可以使用PublishEngine.IsPublished方法。您需要指定爲第一個參數的IdentifiableObject將是您的Page的參數。如果我們正在討論共享(BluePrinted),本地化或本地項目,則無關緊要。您的Page的TCM URI中的發佈ID會告訴您在這種情況下從哪些發佈中發佈頁面。
請注意,您需要使用第三個重載:IsPublished(IdentifiableObject item,PublicationTarget publicationTarget,bool isPublishedInContext)並將最後一個參數設置爲true。這將僅爲您指定項目的發佈狀態,而不是其任何(BluePrint)父母或子女。
您可以指定是否使用基於COM的TOM或TOM.NET API?我假設你正在使用TOM.NET,因爲IsPublishedTo仍然在TOM API – 2012-03-19 14:54:53