通过 API 生成“站点详细信息”页 URL

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

请参见 Oracle Content Management SDK