Generarea unui URL pentru pagina cu detaliile site-ului cu o interfaţă API

În cazul în care randaţi o listă de elemente de conţinut într-o machetă de conţinut din propria dvs. interogare, puteţi crea un link către o pagină de detalii pentru un element de conţinut. Puteţi utiliza API-ul SCSRenderAPI.getPageLinkData al SDK-ului Sites pentru a genera un URL pentru pagina Detalii Site.

Proprietatea detailPageId este ID-ul paginii de detalii selectate în elementul de conţinut sau în lista de conţinut. În cazul în care valoarea nu a fost setată, valoarea returnată este prima pagină din SiteStructureMap, care cuprinde setul de proprietăţi isDetailPage.

Pentru a accesa această proprietate, puteţi utiliza SDK-ului Sites. Acest lucru este valabil numai atunci când macheta de conţinut este utilizată pentru un site Oracle Content Management. Se poate accesa numai prin scsData, transmis drept unul dintre argumente atunci când macheta de conţinut este creată. De exemplu:

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

După ce aveţi detailPageId, îl puteţi utiliza pentru a construi linkul către pagina de detalii.

SCSRenderAPI are o funcţie getPageLinkData(), care preia pageId şi opţiunile suplimentare şi construieşte URL-ul necesar către pagina transmisă prin opţiuni. Iată semnătura pentru această funcţie:

SCSRenderAPI.getPageLinkData(pageId,
      options);

Aceasta are următorii parametri:

  • pageId: Acelaşi cu detailPageId returnat din proprietatea detailPageId a SDK-ului Sites.

  • opţiuni:

    • contentType

    • contentId

    • contentName

Valoarea returnată este un obiect cu următoarele proprietăţi:

  • hideInNavigation

  • href

  • href

Următorul exemplu combină toate acestea:

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);
});

Tipărit, acest lucru ar arăta astfel: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}"

Dacă pageId nu este o pagină de detalii, atunci valorile de conţinut nu sunt adăugate la URL.

Consultaţi Oracle Content Management SDK-uri.