Generere en URL-adresse for side for områdedetaljer med et API

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.

Se SDK-er for Oracle Content Management.