Generera en URL för sidan Detaljer för webbplatsen med hjälp av ett API-gränssnitt

Om du återger en lista över innehållsobjekt i en innehållslayout från en egen fråga kan du skapa en länk till en detaljsida för ett innehållsobjekt. Du kan använda API-gränssnittet för SDK:t för webbplatser, SCSRenderAPI.getPageLinkData, för att generera en URL för sidan Webbplatsdetaljer.

Egenskapen detailPageId är id:t för den detaljsida som valts i innehållsobjektet eller innehållslistan. Om värdet inte har angetts blir det returnerade värdet den första sida i SiteStructureMap som har egenskapen isDetailPage angiven.

För att få åtkomst till den här egenskapen kan du använda SDK:t för webbplatser. Den här är endast tillgänglig när innehållslayouten används för en webbplats för Oracle Content Management. Den kan endast öppnas via scsData, som överförs som ett av argumenten när innehållslayouten skapas. Exempel:

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

När du har detailPageId kan du använda det för att konstruera länken till detaljsidan.

SCSRenderAPI har en funktion, getPageLinkData(), som tar in ett pageId och ytterligare alternativ och konstruerar den URL till sidan som krävs, med överföring av alternativen. Signaturen för den här funktionen är följande:

SCSRenderAPI.getPageLinkData(pageId,
      options);

Den har följande parametrar:

  • pageId: Detsamma som detailPageId som returneras från egenskapen detailPageId för SDK:t för webbplatser.

  • alternativ:

    • contentType

    • contentId

    • contentName

Returvärdet är ett objekt med följande egenskaper:

  • hideInNavigation

  • href

  • href

I nästa exempel sätts allt det här samman:

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 här skulle skrivas ut som: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}"

Om pageId inte är en detaljsida läggs innehållsvärdena inte till i URL:en.

Se Oracle Content Management SDK:er.