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.