APIを使用したサイト詳細ページURLの生成

独自の問合せからコンテンツ・レイアウト内にコンテンツ・アイテムのリストをレンダリングする場合は、コンテンツ・アイテムの詳細ページへのリンクを作成できます。サイトSDKのSCSRenderAPI.getPageLinkData APIを使用して、「サイト詳細」ページURLを生成できます。

detailPageIdプロパティは、コンテンツ・アイテムまたはコンテンツ・リストで選択した詳細ページのIDです。値が設定されていない場合、返される値は、isDetailPageプロパティが設定されているSiteStructureMapの最初のページです。

このプロパティにアクセスするには、サイトSDKを使用できます。これは、コンテンツ・レイアウトがOracle Content Managementサイトで使用されている場合にのみ使用できます。これには、scsDataを介してのみアクセスできます。scsDataは、コンテンツ・レイアウトの作成時に引数の1つとして渡されます。例:

scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) {   console.log(detailPageId);});

detailPageIdを使用したら、これを使用して詳細ページへのリンクを構築できます。

SCSRenderAPIには、pageIdおよび追加オプションを取り、オプションを通過するページに必要なURLを構築する関数getPageLinkData()があります。この関数の署名は次のとおりです:

SCSRenderAPI.getPageLinkData(pageId,
      options);

次のパラメータがあります:

  • pageId: サイトSDKのdetailPageIdプロパティから返されるdetailPageIdと同じです。

  • オプション:

    • contentType

    • Content-ID

    • 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」を参照してください。