Generere en side-URL til sitedetaljer med en API

Hvis du skal gengive en liste over indholdselementer i et indholdslayout fra din egen forespørgsel, kan du oprette et link til en detaljeside for et indholdselement. Du kan bruge Sites-SDK-API'en SCSRenderAPI.getPageLinkData til at generere en side-URL til Sitedetaljer.

Egenskaben detailPageId er ID'et for den detaljeside, der er valgt i indholdselementet eller på indholdslisten. Hvis værdien ikke er angivet, er den returnerede værdi den første side i SiteStructureMap, hvor egenskaben isDetailPage er angivet.

Du kan få adgang til denne egenskab ved at bruge Sites-SDK'et. Den er kun tilgængelig, når indholdslayoutet bruges til et Oracle Content Management-site. Den er kun tilgængelig via scsData, der videregives som et af argumenterne, når indholdslayoutet oprettes. Eksempel:

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

Når du har detailPageId, kan du bruge det til at konstruere linket til detaljesiden.

SCSRenderAPI har funktionen getPageLinkData(), der indlæser et pageId og yderligere valg og konstruerer den påkrævede URL til siden, idet den gennemgår valgene. Signaturen for denne funktion er følgende:

SCSRenderAPI.getPageLinkData(pageId,
      options);

Den har følgende parametre:

  • pageId: Det samme som det detailPageId, der returneres fra Sites-SDK-egenskaben detailPageId.

  • options:

    • contentType

    • contentId

    • contentName

Returværdien er et objekt med disse egenskaber:

  • hideInNavigation

  • href

  • href

Det næste eksempel sammensætter alt dette:

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

Det udskrives som: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}"

Hvis pageId ikke er en detaljeside, føjes indholdsværdierne ikke til URL'en.

Se Oracle Content Management-SDK'er.