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