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.