如果您要从自己的查询呈现某个内容布局中的内容项列表,您可以创建指向内容项的详细信息页的链接。您可以使用 Sites SDK SCSRenderAPI.getPageLinkData
API 生成站点详细信息页 URL。
detailPageId
属性是内容项或内容列表中选择的详细信息页的 ID。如果未设置值,则返回的值是 SiteStructureMap
中设置了 isDetailPage
属性的第一个页。
要访问此属性,可以使用 Sites SDK。仅当将内容布局用于 Oracle Content Management 站点时,此属性才可用。只能通过 scsData 访问它,在创建内容布局时,它作为其中一个参数进行传递。例如:
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { console.log(detailPageId);});
有了 detailPageId
后,就可以使用它构造指向详细信息页的链接。
SCSRenderAPI 具有函数 getPageLinkData()
,此函数接受 pageId
及其他选项,并通过选项传递来构造页的所需 URL。此函数的签名如下:
SCSRenderAPI.getPageLinkData(pageId, options);
它包含以下参数:
pageId:与 Sites SDK detailPageId
属性返回的 detailPageId
相同。
options:
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。