Создание URL-адреса страницы сведений о сайте с помощью API

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

См. Комплекты Oracle Content Management SDK.