Реализация локального компонента

Экземпляр компонента создается объектом "фабрика компонентов"

Запись объекта "фабрика компонентов" в файле регистрации компонента: initData.componentFactory. Это ссылка на файл JavaScript, который RequireJS использует для загрузки фабрики компонентов. Он должен вернуть объект JavaScript, который реализует интерфейс componentFactory

Объект "фабрика компонентов" должен реализовать API-интерфейс customComponentFactory.createComponent(args), который создает каждый экземпляр компонента.

args содержит следующие настройки:

  • SitesSDK: пакет Sites SDK Oracle Content Management.

  • ID: уникальный идентификатор (GUID) компонента, добавленного на страницу.

  • viewMode: текущий режим рендеринга страницы. Режиму редактирования страницы соответствует значение "Edit". Предварительному просмотру страницы соответствует значение "Navigate" (Навигация). Во время выполнения, т. е. когда сайт публикуется, значение не определено. Можно предоставить различные варианты реализации, в зависимости от того, какие функциональные возможности должны быть доступны для каждого режима. Например, ссылки не должны быть активными, если страница находится в режиме редактирования.

Примечание.:

Не обязательно использовать JQuery или Knockout для своего компонента, но если требуется использовать функции Oracle Content Management, такие как вложенные компоненты, необходимо использовать версию Knockout, предоставленную средой Oracle Content Management. Эта версия Knockout имеет расширенную регистрацию компонентов и обработчики, которые в противном случае были бы недоступны.

Для самого компонента комплект SDK передается при создании экземпляра компонента, чтобы компонент мог взаимодействовать с жизненным циклом страницы. Функции жизненного цикла страницы должны быть реализованы компонентом, и они вызываются средой Oracle Content Management для рендеринга компонента на странице.

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

Обязательные API-интерфейсы

customComponent.render(container): запрашивает вставку компонента в предоставленный элемент контейнера DOM.

  • container: элемент контейнера DOM для HTML-кода пользовательского компонента.

Дополнительные API-интерфейсы

customComponent.dose(): вызывается при удалении компонента со страницы. Позволяет компоненту удалить ненужные ресурсы.