Generowanie adresu URL strony ze szczegółami serwisu przy użyciu API

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.

Zob. Oracle Content Management SDK.