Разработка собственного пользовательского компонента позволяет разрабатывать составные элементы для встраивания в страницу сайта с использованием любой доступной технологии страницы. Это позволяет эффективно расширить список компонентов, поставляемых с Oracle Content Management.
Записи для всех зарегистрированных компонентов хранятся в каталоге компонентов, который представляет собой папку в Oracle Content Management.
Не используйте для шаблонов, тем, компонентов, сайтов и страниц сайтов следующие имена: authsite, content, pages, scstemplate_*, _comps, _components, _compsdelivery, _idcservice, _sitescloud, _sitesclouddelivery, _themes, _themesdelivery. Следующие имена можно использовать только для страниц сайтов (не для шаблонов, тем, компонентов и сайтов): documents, sites.
Типы компонентов
Каталог компонентов поддерживает компоненты следующих типов:
Локальный компонент
Локальный компонент, визуализированный во встроенной рамке
Удаленный компонент
Тип компонента сохраняется как атрибут расширения "xScsAppType" папки компонента. Далее следуют допустимые значения.
| Тип | Описание | 
|---|---|
| Локальный компонент | Ожидается, что все зависимые ресурсы локальны. | 
| Локальный компонент, визуализированный во встроенной рамке | Компонент обслуживается из того же домена, что и Oracle Content Management. | 
| Удаленный компонент | Компонент обслуживается из удаленного местоположения. | 
Структура файлов компонентов
У каждого типа компонентов свой набор файлов, созданных в каталоге компонентов, в зависимости от способа их реализации.
Локальный компонент:
/Components/component-name
    appinfo.json
    _folder_icon.jpg
    assets
        settings.html
        render.js
Локальный компонент с использованием встроенной рамки:
/Components/component-name
    appinfo.json
    _folder_icon.jpg
    assets
        settings.html
        render.js
        js
            sites.min.js
            knockout.min.js
            jquery.min.js
Удаленный компонент:
/Components/component-name
    appinfo.json
    _folder_icon.jpg
    keys.jsonМетаданные папки
Данные регистрации компонентов хранятся в метаданных папки. Указанные ниже свойства используются для уникальной идентификации компонента и его типа.
| Свойство | Описание | 
|---|---|
| имя приложения | Имя папки, которая обозначает имя компонента. | 
| описание приложения | Описание папки. | 
| guid приложения | Каждый компонент связан с GUID и хранится как атрибут расширения  | 
| тип приложения | Свойство определяет тип компонента. Оно сохраняется как атрибут расширения  | 
Примечание.:
СвойствоiconURL, которое хранится как атрибут расширения xScsAppIconUrl, устарело.Файл appinfo.json
Файл регистрации appinfo.json для каждого типа компонента содержит только данные, которые не доступны в метаданных папки. Свойства компонента, определенные в метаданных папки, не дублируются в файл appinfo.json.
Локальный компонент:
{
        "settingsData":{
                "settingsHeight":80,
                "settingsRenderOption"; "dialog",
                "settingsWidth":300,
                "componentLayouts":[],
                "triggers":[],
                "actions":[]
        },
        "initialData":{
                "customSettingsData":[],
        }
}
Локальный компонент, визуализированный во встроенной рамке:
{
        "endpoints": {
              "settings": {
                      "height": "300",
                      "width": "400"
              }
        }
        "initialData": {
                "customSettingsData": {}
        }
}
Удаленный компонент:
{
        "endpoints": {
              "widget": {
                     "url": "http://www.externaldomain.com/app/render.html"
              }
              "settings": {
                      "url": "http://www.externaldomain.com/app/settings.html",
                      "height": "300",
                      "width": "400"
              }
        }
        "initialData": {
              "customSettingsData": {}
        }
}
Нет зарегистрированных значений "url" для локальных компонентов. Они используют определенные файлы, содержимое которых можно изменять, но нельзя изменить местоположение или имя.
Локальные компоненты используют файлы assets/render.js и assets/settings.html.
Локальные компоненты, визуализированные во встроенной рамке, используют файлы assets/render.html и assets/settings.html.
Удаленные компоненты используют указанные значения "url".