Se si esegue il rendering di una lista di elementi di contenuto in un layout di contenuto della propria query, è possibile creare un collegamento a una pagina di dettagli per un elemento di contenuto. Per generare l'URL di una pagina Dettagli sito è possibile utilizzare l'interfaccia API SCSRenderAPI.getPageLinkData
del kit Sites SDK.
La proprietà detailPageId
rappresenta l'ID della pagina Dettagli selezionata nell'elemento di contenuto o nella lista di contenuti. Se il valore non è stato impostato, il valore restituito sarà la prima pagina della mappa SiteStructureMap
per la quale è stata impostata la proprietà isDetailPage
.
Per accedere a questa proprietà è possibile utilizzare il kit Sites SDK. La proprietà è disponibile solo quando il layout di contenuto viene utilizzato per un sito Oracle Content Management. È accessibile solo tramite scsData, passato come uno degli argomenti alla creazione del layout di contenuto. Ad esempio:
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { console.log(detailPageId);});
Il valore detailPageId
ottenuto può essere utilizzato per creare il collegamento alla pagina Dettagli.
In SCSRenderAPI è disponibile la funzione getPageLinkData()
, che acquisisce un valore pageId
e alcune opzioni aggiuntive e crea l'URL alla pagina richiesto passando le opzioni. La firma per questa funzione è la seguente:
SCSRenderAPI.getPageLinkData(pageId, options);
Dispone dei parametri riportati di seguito.
pageId: valore uguale al valore detailPageId
restituito dalla proprietà detailPageId
del kit SDK Sites.
options:
contentType
contentId
contentName
Il valore restituito è un oggetto con queste proprietà:
hideInNavigation
href
href
L'esempio seguente mostra un frammento di codice con tutti questi elementi:
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); });
Il risultato verrebbe visualizzato così: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}
"
Se pageId
non rappresenta una pagina Dettagli, i valori di contenuto non verranno aggiunti all'URL.
Vedere Oracle Content Management SDK.