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