Generovanie adresy URL stránky detailov lokality pomocou rozhrania API

Ak vykresľujete zoznam obsahových položiek v rozložení obsahu z vlastného dopytu, môžete vytvoriť prepojenie na stránku detailov obsahovej položky. Pomocou rozhrania API SCSRenderAPI.getPageLinkData v súprave Sites SDK môžete vygenerovať adresu URL stránky Detaily lokality.

Vlastnosť detailPageId je ID stránky detailov vybrané v obsahovej položke alebo v zozname obsahu. Ak táto hodnota nebola nastavená, vrátenou hodnotou bude prvá stránka v mape SiteStructureMap, ktorá má nastavenú vlastnosť isDetailPage.

Na prístup k tejto vlastnosti môžete použiť súpravu Sites SDK. Tá je k dispozícii len vtedy, keď sa pre lokalitu Oracle Content Management používa rozloženie obsahu. Prístup je možný len cez štruktúru scsData, ktorá bola odovzdaná ako jeden z argumentov pri vytvorení rozloženia obsahu. Príklad:

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

Keď získate identifikátor detailPageId, môžete ho použiť na vytvorenie prepojenia na stránku detailov.

SCSRenderAPI obsahuje funkciu getPageLinkData(), ktorá pomocou identifikátora pageId a postupným použitím ďalších volieb vytvorí požadovanú adresu URL na stránku. Nasleduje podpis pre túto funkciu:

SCSRenderAPI.getPageLinkData(pageId,
      options);

Obsahuje nasledujúce parametre:

  • pageId: Ide o rovnaký parameter ako detailPageId vrátený z vlastnosti detailPageId v súprave Sites SDK.

  • voľby:

    • contentType

    • contentId

    • contentName

Návratová hodnota je objekt s týmito vlastnosťami:

  • hideInNavigation

  • href

  • href

V nasledujúcom príklade je výsledné spojenie:

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

Po vytlačení to bude vyzerať takto: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}"

Ak pageId nie je stránkou detailov, hodnoty obsahu sa do adresy URL nepridajú.

Pozrite si časť Súpravy SDK služby Oracle Content Management.