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.