URL für eine Sitedetailseite mit einer API generieren

Wenn Sie eine Liste von Inhaltselementen in einem Inhaltslayout von Ihrer eigenen Abfrage rendern, können Sie einen Link zu einer Detailseite für ein Inhaltselement erstellen. Sie können die SCSRenderAPI.getPageLinkData-API des Sites-SDK verwenden, um eine Seiten-URL für Sitedetails zu generieren.

Die detailPageId-Eigenschaft ist die ID der Detailseite, die im Inhaltselement oder in der Inhaltsliste ausgewählt ist. Wenn der Wert nicht festgelegt wurde, wird die erste Seite in der SiteStructureMap zurückgegeben, bei der die Eigenschaft isDetailPage festgelegt ist.

Sie können mit dem Sites-SDK auf diese Eigenschaft zugreifen. Dieses ist nur verfügbar, wenn das Inhaltslayout für eine Oracle Content Management-Site verwendet wird. Sie können nur über scsData darauf zugreifen. Dieses Argument wird beim Erstellen des Inhaltslayouts übergeben. Beispiel:

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

Wenn Sie über die detailPageId verfügen, können Sie damit den Link zur Detailseite erstellen.

Die Funktion getPageLinkData() der SCSRenderAPI akzeptiert eine pageId sowie zusätzliche Optionen und erstellt damit die erforderliche URL zur Seite. Signatur für diese Funktion:

SCSRenderAPI.getPageLinkData(pageId,
      options);

Verfügbare Parameter:

  • pageId: Mit der detailPageId identisch, die von der Eigenschaft detailPageId des Sites-SDK zurückgegeben wird.

  • options:

    • contentType

    • contentId

    • contentName

Der Rückgabewert ist ein Objekt mit den folgenden Eigenschaften:

  • hideInNavigation

  • href

  • href

Im nächsten Beispiel werden alle diese Elemente zusammengeführt:

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

Druckausgabe: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}"

Wenn die pageId keine Detailseite ist, werden die Inhaltswerte nicht der URL hinzugefügt.

Siehe Oracle Content Management-SDKs.