Hvis du gjengir en liste over innholdselementer i et innholdsoppsett fra en egen spørring, kan du opprette en kobling til en detaljside for et innholdselement. Du kan bruke Sites SDK-ets SCSRenderAPI.getPageLinkData
-API til å generere en URL-adresse til siden Områdedetaljer.
Egenskapen detailPageId
er ID-en til detaljsiden som er valgt i innholdselementet eller innholdslisten. Hvis verdien ikke er angitt, er den returnerte verdien første side i SiteStructureMap
, der egenskapen isDetailPage
er angitt.
Hvis du vil ha tilgang til denne egenskapen, kan du bruke Sites SDK. Dette er bare tilgjengelig når innholdsoppsettet brukes til et Oracle Content Management-område. Det er bare mulig å få tilgang til det via scsData, som sendes som ett av argumentene når innholdsoppsettet opprettes. For eksempel:
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { console.log(detailPageId);});
Når du har detailPageId
, kan du bruke det til å konstruere koblingen til detaljsiden.
SCSRenderAPI har en funksjon, getPageLinkData()
, som henter inn en pageId
og tilleggsvalg, og konstruerer den nødvendige URL-adressen til siden ved å gå gjennom valgene. Signaturen for denne funksjonen følger:
SCSRenderAPI.getPageLinkData(pageId, options);
Den har følgende parametre:
pageId: Samme som detailPageId
returnert fra Sites SDK-ets detailPageId
-egenskap.
valg:
contentType
contentId
contentName
Returverdien er et objekt med disse egenskapene:
hideInNavigation
href
href
Neste eksempel samler 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 blir skrevet ut som: /sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}
Hvis pageId
ikke er en detaljside, blir ikke innholdsverdiene lagt til i URL-adressen.