При визуализации списка элементов контента в макете контента из собственного запроса можно создать ссылку на страницу сведений для элемента контента. Для создания 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-адрес.