在您擁有的查詢中,若是在內容版面配置中呈現內容項目清單,則可以為內容項目建立詳細資訊頁面連結。您可以使用 Sites SDK SCSRenderAPI.getPageLinkData
API 來產生網站詳細資訊頁面 URL。
detailPageId
特性是內容項目或內容清單中所選詳細資訊頁面的 ID。若未設定此值,傳回的值會是 SiteStructureMap
中已設定 isDetailPage
特性的第一個頁面。
若要存取此特性,您可以使用 Sites SDK。只有 Oracle Content Management 網站使用內容版面配置時,才能這麼做。而且,只能透過 scsData 存取,在建立內容版面配置後,它會以其中一個引數的形式傳送。例如:
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { console.log(detailPageId);});
取得 detailPageId
之後,您就可以用它來建構詳細資訊頁面的連結。
SCSRenderAPI 的 getPageLinkData()
函數會獲取 pageId
和其他選項,然後建構透過選項傳送的頁面 URL。此函數的簽章如下:
SCSRenderAPI.getPageLinkData(pageId, options);
它包含下列參數:
pageId:與 Sites SDK detailPageId
特性傳回的 detailPageId
相同。
選項:
contentType
contentId
contentName
傳回值為包含以下特性的物件:
hideInNavigation
href
href
以下的範例將所有項目集結在一起:
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { var pageDetails = SCSRenderAPI.getPageLinkData(pageId, { 'contentType': contentType, 'contentId': contentId, 'contentName': contentItemData.slug || contentItemData.name }); // get the URL to the page console.log(pageDetails.href); });
這將列印出:"/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}
"
如果 pageId
不是詳細資訊頁面,內容值就不會加到 URL。