Renderując w układzie zawartości listę elementów zawartości uzyskaną za pomocą własnego zapytania, można utworzyć dla elementu zawartości łącze prowadzące do strony szczegółów. Do wygenerowania adresu URL strony Szczegóły serwisu można użyć API SCSRenderAPI.getPageLinkData
z Sites SDK.
Właściwość detailPageId
określa identyfikator strony szczegółów wybranej z elemencie zawartości lub z listy zawartości. Jeśli ta wartość nie zostanie określona, zwracaną wartością jest pierwsza strona z obiektu SiteStructureMap
mająca ustawioną właściwość isDetailPage
.
Dostęp do tej właściwości można uzyskać za pomocą Sites SDK. Jest ona dostępna tylko wtedy, gdy układ zawartości jest używany dla serwisu Oracle Content Management. Można uzyskać do niej dostęp tylko przez scsData, przekazywane jako jeden z argumentów, gdy jest tworzony układ zawartości. Na przykład:
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { console.log(detailPageId);});
Mając detailPageId
, można go użyć do skonstruowania łącza do strony szczegółów.
SCSRenderAPI zawiera funkcję getPageLinkData()
, która przyjmuje pageId
wraz z dodatkowymi opcjami i konstruuje wymagany URL dla strony przekazywanej przez opcje. Funkcja ta ma następującą postać:
SCSRenderAPI.getPageLinkData(pageId, options);
Zawiera następujące parametry:
pageId: Identyczny z detailPageId
zwracanym z właściwości detailPageId
z Sites SDK.
options:
contentType
contentId
contentName
Jest zwracany obiekt z następującymi właściwościami:
hideInNavigation
href
href
Wszystko to jest przedstawione w poniższym przykładzie:
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); });
Wynikiem będzie: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}
"
Jeśli pageId
nie jest identyfikatorem strony szczegółów, wartości "content" nie są dodawane do adresu URL.