Разработка пользовательских макетов разделов с помощью API

Пользовательские макеты разделов можно создавать в Oracle Content Management с помощью API-интерфейса для макетов разделов, который включает API-интерфейсы для рендеринга и редактирования.

Начальные файлы можно посмотреть в разделе Создание макета раздела. Начальные файлы для макетов разделов содержат комментарии с подробными сведениями о структуре файлов макетов разделов.

API-интерфейсы рендеринга

API-интерфейсы рендеринга, загруженные из модуля render.js, используются в Site Builder и во время выполнения.

API-интерфейс рендеринга Описание Входные параметры Возвращаемый результат
(Constructor) Инициализирует модуль рендеринга макета раздела.

Объект JavaScript, содержащий следующие свойства:

  • sectionlayoutData (объект): данные макета раздела, найденные в модели страницы.

  • componentId (строка): значение componentId макета раздела, обычно GUID.

  • renderMode (строка, необязательно): режим рендеринга для операции рендеринга.

  • customSettingsData (объект): копия customSettingsData, найденная в sectionLayoutData.

API-интерфейсы рендеринга макетов разделов инициализированы.
render

Порождает DOM-элементы, подходящие для макета раздела, на страницу, включая теги DIV контейнеров для дочерних компонентов.

container (элемент): DOM-элемент, в который должен превратиться макет раздела в результате рендеринга.

Этот метод возвращает результат, а затем осуществляется рендеринг дочерних компонентов.

Дочерние компоненты можно выявить по дочерним элементам div[id]

addComponent

Используется с компонентами списка контента для динамического добавления дочерних компонентов в макет раздела.

Это необязательная функция.

container (элемент): DOM-элемент, в который должен превратиться новый компонент в результате рендеринга.

componentId (строка): идентификатор нового компонента, добавляемого в макет раздела.

Этот метод возвращает результат, а затем осуществляется рендеринг элемента, идентификатор которого совпадает с введенным идентификатором componentId.

API-интерфейсы редактирования

Модуль edit.js загружается, если свойству hasEditHandlers задано значение true в файле appinfo.json, связанном с макетом раздела.

API-интерфейсы редактирования используются в Site Builder.

Все функции этого модуля, за исключением функции Constructor, являются дополнительными.

API-интерфейс редактирования Описание Входные параметры Возвращаемый результат
(Constructor) Инициализирует модуль редактирования макетов разделов.

Объект JavaScript, содержащий следующее свойство:

  • componentId (строка): значение componentId макета раздела, обычно GUID.

API-интерфейсы редактирования макетов разделов инициализированы.

getCapabilities

Возвращает объект, описывающий возможности редактирования макета раздела.

Объект JavaScript, описывающий возможности редактирования макета раздела.

После ввода этой функции предоставляются возможности по умолчанию. Функция может нужным образом изменить объект Capabilities.

Объект Capabilities может включать следующие возможности:

  • title (строка): заголовок макета раздела, который отображается для пользователя.

  • settingsTitle (строка): заголовок, который отображается в диалоговом окне панели настроек.

  • hasSettings (логическое значение): указывает, поддерживается ли панель настроек макетом раздела.

  • allowMove (логическое значение): указывает, позволяет ли макет раздела перемещать дочерние элементы.

  • allowDelete (логическое значение): указывает, позволяет ли макет раздела удалять дочерние элементы.

  • isHidden (логическое значение): указывает, является ли макет раздела скрытым в результате пользовательских настроек.

  • dropTarget (логическое значение): указывает, является ли макет раздела целевым объектом для операций перетаскивания.

  • customMenuOptions (массив): пользовательские пункты меню для добавления элементов в контекстное меню макета раздела. Каждый объект menu-option имеет следующие свойства:

    • label (строка): отображаемый текст элемента меню.

    • action (функция): функция, которая вызывается при нажатии элемента меню.

    • disabled (логическое значение): указывает, что элемент меню должен отображаться в отключенном состоянии.

    • icon (строка): URL-адрес, отображаемый рядом с меткой в элементе меню. (Это свойство зарезервировано для использования в будущем.)

    • checkmark (логическое значение): указывает, что рядом с меткой в элементе меню должна появиться галочка.

    • subMenuItems (массив): пункты меню, отображаемые в подменю.

(Объект): возможности для макета раздела.

getCaptionContent

Возвращает отображаемое имя макета раздела, которое будет отображаться в элементах пользовательского интерфейса.

Нет.

(Строка): Отображаемое имя макета раздела.

filterCapabilities

Позволяет макету раздела изменить объект Capabilities (Возможности) до того, как элементы меню будут показаны пользователю.

Этот API-интерфейс можно использовать для настройки или удаления пунктов меню. (См. также getCapabilities.)

Объект JavaScript, описывающий возможности редактирования макета раздела. Во время ввода этой функции предоставляются возможности по умолчанию.

(Объект) Возможности для макета раздела.
onDragOver Вызывается во время перетаскивания, чтобы указать, можно ли перетащить выбранный элемент на макет раздела.

eventObject (объект события): объект события, содержащий информацию о событии перетаскивания.

dataTransfer (объект DataTransfer): объект DataTransfer с информацией об элементе, перетаскиваемом на макет раздела.

(Логическое значение) Значение, указывающее, может ли перетаскиваемый элемент быть принят макетом раздела.

Возвращает значение true, если макет раздела может принять перетаскиваемый элемент, в противном случае возвращается значение false.

onDrop Вызывается при завершении перетаскивания, чтобы указать, что перетаскиваемый элемент следует поместить в макет раздела.

eventObject (объект события): объект события, содержащий информацию о событии завершения перетаскивания.

dataTransfer (объект DataTransfer): объект DataTransfer с информацией об элементе, который перетаскивается в макет раздела.

(Логическое значение) Значение, указывающее, было ли завершение перетаскивания обработано макетом раздела.

Если возвращается значения true, осуществляется обход логики по умолчанию.

onAddComponent Уведомляет макет раздела о том, что в результате перетаскивания в макет раздела добавлен элемент.

eventObject (объект события): объект события, содержащий информацию о событии перетаскивания.

dataTransfer (объект DataTransfer): объект DataTransfer с информацией об элементе, который перетаскивается в макет раздела.

componentId (строка): значение componentId недавно добавленного элемента.

Уведомление макета раздела.
onMoveComponent

Уведомляет макет раздела о том, что в результате перетаскивания в макет раздела перемещен элемент.

eventObject (объект события): объект события, содержащий информацию о событии перетаскивания.

dataTransfer (объект DataTransfer): объект DataTransfer с информацией об элементе, который перетаскивается в макет раздела.

componentId (строка): значение componentId перемещенного элемента.

Уведомление макета раздела.
getSettingsData

Позволяет макету раздела изменить данные настроек перед отображением панели настроек.

settingsData (объект): данные настроек по умолчанию, вычисленные для макета раздела

(Объект) Данные настроек для макета раздела.
updateSettings

Позволяет макету раздела изменять настройки после закрытия панели настроек.

Этот API-интерфейс вызывается непосредственно перед сохранением настроек в модели страницы.

parameters (объект): объект необработанных параметров, возвращаемый с панели настроек.

sectionLayoutData (объект): данные макета раздела, которые будут сохранены. Данные по умолчанию будут созданы на основе parameters (Object) и переданы функции в этом параметре.

(Объект) Данные макета раздела для хранения в модели страницы.
dispose

Позволяет модулю редактирования освобождать память, отключать события и освобождать ресурсы, связанные с обработчиками редактирования.

Этот API-интерфейс вызывается, когда необходимо полностью перерисовать макет раздела, как в случае операции отмены/повтора.

Нет. Перерисовка макета раздела включена.