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.