Generare l'URL della pagina Dettagli del sito con un'interfaccia API

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.