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