При визуализации списка элементов контента в макете контента из собственного запроса можно создать ссылку на страницу сведений для элемента контента. Для создания URL-адреса страницы Сведения о сайте можно использовать API-интерфейс SCSRenderAPI.getPageLinkData
комплекта Sites SDK.
Свойство detailPageId
— это идентификатор страницы сведений, выбранной в элементе контента или списке контента. Если значение не задано, возвращаемое значение соответствует первой странице в SiteStructureMap
с заданным свойством isDetailPage
.
Для доступа к этому свойству можно использовать Sites SDK. Это доступно, только если такой макет контента используется для сайта Oracle Content Management. Доступ к нему можно получить только посредством параметра scsData, который передается как один из аргументов при создании макета контента. Пример:
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { console.log(detailPageId);});
После получения идентификатора detailPageId
его можно использовать для создания ссылки на страницу сведений.
SCSRenderAPI имеет функцию getPageLinkData()
, которая принимает pageId
и дополнительные параметры и создает требуемый URL-адрес страницы, передавая указанные параметры. Подпись для этой функции:
SCSRenderAPI.getPageLinkData(pageId, options);
Она содержит следующие параметры:
pageID: такой же, как идентификатор detailPageId
, возвращаемый из свойства detailPageId
Sites SDK.
параметры:
contentType
contentId
contentName
Возвращаемое значение — это объект со следующими свойствами:
hideInNavigation
href
href
В следующем примере все это сводится воедино:
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); });
Это будет выглядеть следующим образом: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}
"
Если pageId
не соответствует странице сведений, значения контента не добавляются в URL-адрес.