Se você estiver renderizando uma lista de itens de conteúdo em um layout de conteúdo de sua própria consulta, poderá criar um link para uma página de detalhes de um item de conteúdo. Você pode usar a API SCSRenderAPI.getPageLinkData
do Sites SDK para gerar um URL da página Detalhes do Site.
A propriedade detailPageId
é o ID da página de detalhes selecionada no item ou na lista de conteúdo. Se o valor não tiver sido definido, o valor retornado será a primeira página no SiteStructureMap
que tiver a propriedade isDetailPage
definida.
Para acessar essa propriedade, você pode usar o Sites SDK. Essa opção só está disponível quando o layout de conteúdo é usado para um site do Oracle Content Management. Só pode ser acessado por meio do scsData, que é transmitido como um dos argumentos quando o layout de conteúdo é criado. Por exemplo:
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { console.log(detailPageId);});
Se você tiver o detailPageId
, poderá utilizá-lo para construir o link para a página de detalhes.
A SCSRenderAPI tem uma função, getPageLinkData()
, que obtém um pageId
e opções adicionais e constrói o URL necessário para a página que está sendo informada pelas opções. A assinatura dessa função é esta:
SCSRenderAPI.getPageLinkData(pageId, options);
Ela tem os seguintes parâmetros:
pageId: o mesmo que o detailPageId
retornado da propriedade detailPageId
do Sites SDK.
opções:
contentType
contentId
contentName
O valor de retorno é um objeto com estas propriedades:
hideInNavigation
href
href
O próximo exemplo junto tudo isso:
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); });
Isso seria impresso como: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}
"
Se o pageId
não for uma página de detalhes, os valores de conteúdo não serão adicionados ao URL.
Consulte os SDKs do Oracle Content Management.