关于开发组件

通过开发自己的定制组件,您可以使用任何选定的页技术,开发可嵌入到站点页中的复合元素。实际上,您可以通过这种方式扩展随 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 关联,并作为扩展属性 xScsItemGUID 存储。GUID 是在创建组件时由服务器生成的。

应用程序类型

此属性指定组件类型。它作为扩展属性 xScsApType 存储。

注:

已废弃作为扩展属性 xScsAppIconUrl 存储的属性 iconUrl

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.jsassets/settings.html

  • 在内嵌框架中呈现的本地组件使用文件 assets/render.htmlassets/settings.html

  • 远程组件使用指定的任何 "url" 值。