独自の問合せからコンテンツ・レイアウト内にコンテンツ・アイテムのリストをレンダリングする場合は、コンテンツ・アイテムの詳細ページへのリンクを作成できます。サイト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」を参照してください。