Gerar um URL da Página Detalhes do Site com uma API

Se estiver a renderizar uma lista de itens de conteúdo numa disposição de conteúdo a partir da sua própria consulta, pode criar uma ligação para a uma página de detalhes de um item de conteúdo. Pode utilizar a API SCSRenderAPI.getPageLinkData do Sites SDK para gerar um URL da página Detalhes do Site.

A propriedade detailPageId é a ID da página de detalhes selecionada no item de conteúdo ou na lista de conteúdos. Se o valor não tiver sido definido, o valor devolvido é a primeira página no SiteStructureMap que tiver a propriedade isDetailPage definida.

Para aceder a esta propriedade, pode utilizar o Sites SDK. Esta só está disponível quando a disposição de conteúdo é utilizada para um site do Oracle Content Management. Pode ser acedida apenas através de scsData, que é transmitido como um dos argumentos quando a disposição de conteúdo é criada. Por exemplo:

scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) {   console.log(detailPageId);});

Quando tiver o valor de detailPageId, pode utilizá-lo para criar a ligação para a página de detalhes.

SCSRenderAPI tem uma função, getPageLinkData(), que assume um valor pageId e opções adicionais e constrói o URL necessário para a página, transmitindo as opções. Segue-se a assinatura para esta função:

SCSRenderAPI.getPageLinkData(pageId,
      options);

Tem os seguintes parâmetros:

  • pageId: O mesmo que o valor detailPageId devolvido a partir da propriedade detailPageId do Sites SDK.

  • opções:

    • contentType

    • contentId

    • contentName

O valor de retorno é um objeto com estas propriedades:

  • hideInNavigation

  • href

  • href

O exemplo seguinte reúne tudo isto:

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);
});

Isto será impresso como: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}"

Se pageId não for uma página de detalhes, os valores de conteúdo não são acrescentados ao URL.

Consulte os Oracle Content Management SDKs.