在您擁有的查詢中,若是在內容版面配置中呈現內容項目清單,則可以為內容項目建立詳細資訊頁面連結。您可以使用 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。