如果您要从自己的查询呈现某个内容布局中的内容项列表,您可以创建指向内容项的详细信息页的链接。您可以使用 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。