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.