使用 API 產生網站詳細資訊頁面 URL

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

請參閱 Oracle Content Management SDK