了解 components.json 文件和格式

主题必须具有 components.json 文件,该文件位于 /ThemeName/components.json 中,用于指定主题中使用的组件。

此文件必须包含有效 JSON,该文件必须至少包含空 JSON 数组 []

components.json 文件语法列出所有本地组件并且完全支持组件的分类。(远程组件在组件目录中注册。)

无论将什么组件添加到主题级别 components.json 文件(包括无组件),Oracle Content Management 都会填充用户可用的默认组件集。此默认集在源代码中定义。以下列表显示了内嵌框架中呈现的组件和(植入)组件。此外,在服务级别注册且设置为可用于您实例中用户的任何远程组件都将可用于站点构建器。

以下本地组件随 Oracle Content Management 提供。

名称 类型 ID

标题

scs-title

scs-title

段落

scs-paragragh

scs-paragragh

图像

scs-image

scs-image

图库

scs-gallery

scs-gallery

图库网格

scs-gallerygrid

scs-gallerygrid

文档

scs-document

scs-document

按钮

scs-button

scs-button

地图

scs-map

scs-map

分隔线

scs-divider

scs-divider

分隔符

scs-spacer

scs-spacer

YouTube

scs-youtube

scs-youtube

社交栏

scs-socialbar

scs-socialbar

视频

scs-video

scs-video

文章(定制组件)

scs-component

scs-comp-article

标题(定制组件)

scs-component

scs-comp-headline

图像和文本(定制组件)

scs-component

scs-comp-image-text

内嵌框架中呈现的下列组件随 Oracle Content Management 提供。它们不包括注册的远程组件。

名称 类型 ID

对话

scs-app

对话

文档管理器

scs-app

文档管理器

文件夹列表

scs-app

文件夹列表

文件列表

scs-app

文件列表

Facebook 点赞

scs-app

Facebook 点赞

Facebook 推荐

scs-app

Facebook 推荐

Twitter 关注

scs-app

Twitter 关注

Twitter 共享

scs-app

Twitter 共享

一般格式

components.json 文件的一般格式如下:

  • 在每个组件内指定组件的属性。顶级 "components""apps" 属性已废弃。

  • 每个组件都具有 "type" 属性。组件只能具有特定值(所有值都列在默认组件的表中)。

  • 每个组件都具有 "id" 属性,其必须唯一。此属性用于区分具有相同 "type" 的组件。以前,应用程序具有 "appName" 属性。虽然 "id" 不可用时 "appName" 仍起作用,但是 "appName" 属性已废弃。

  • 每个组件都具有 "name" 属性,这是用户界面中的显示名称。如果未指定回退值,对于组件,该值是相应默认组件的名称,对于远程组件,该值是 ID。

下面是 components.json 文件的示例:

[
    {
        "name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
        "list": [
            {
                "type": "scs-title",
                "id": "my-headline",
                "name": "My Headline",
                ...
            },
            {
                ...
            },...
        ]
    },
    {
        "name": "My own category name",
        "list": [ ... ]
    }
]

一般结构是类别对象的 JSON 数组。每个类别对象都具有 "name" 属性和 "list" 属性。"name" 属性可以是映射到本地化字符串的键。如果这些默认类别不够,您可以提供自己的类别名称,该名称将不进行本地化。下表列出了可用默认类别和相应键。

类别名称(英语)

COMP_CONFIG_CONTENT_CATEGORY_NAME

Content

COMP_CONFIG_CUSTOM_CATEGORY_NAME

Custom

COMP_CONFIG_MEDIA_CATEGORY_NAME

Media

COMP_CONFIG_SOCIAL_CATEGORY_NAME

Social

COMP_CONFIG_TEXT_CATEGORY_NAME

Text

每个类别对象中的 "list" 属性都包含组件对象的数组。每个组件或对象都必须具有 "type""id" 属性。其他属性是可选的。

  • "type" 属性必须等于在默认组件中找到的一种类型。如果 "type" 尚未存在,将不显示组件。

  • "id" 属性在组件间必须唯一。如果发现 "id" 已存在,将不显示组件。

  • "name" 属性是用户界面中组件的显示名称。此项将替换应用程序先前的 "appName" 属性(现在是远程组件)。

  • 所有其他属性都与先前发行版中相同。

将新组件添加到 components.json

不允许修改默认组件。但是,您可以基于现有默认组件创建新组件。例如,可以基于用于设置一些默认文本的 "scs-title" 组件来创建新组件。添加新组件所需的最低要求是指定 "type""id" 属性。

  • "type" 必须等于在默认组件中找到的一种类型。如果 "type" 尚未存在,将不显示组件。

  • "id" 在组件间必须唯一。如果发现 "id" 已存在,将不显示组件。

下面是用于添加新标题组件的代码示例。此组件将与默认标题组件一起显示。

[
    {
        "name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
        "list": [
            {
                "type": "scs-title",
                "id": "my-headline"
            }
        ]
    }
]

下面是用于添加具有显示名称和默认文本的新标题组件的代码示例。

[
    {
        "name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
        "list": [
            {
                "type": "scs-title",
                "id": "my-headline",
                "name": "My Headline",
                "initialData": {
                    "userText": "This is a second title component"
                }
            }
        ]
    }
]

请注意,标题组件采用默认标题组件的所有属性作为基础,并在其上应用主题级别的修改来创建新组件。

向后兼容性

仍可以读取采用以前格式的 components.json 文件。

  • 具有顶级 "components""apps" 属性的文件。

  • 如果文件包含 "apps" 属性,仍将加载此属性下的用户定义的远程组件。

  • 如果文件包含顶级 "apps" 属性,则假定下面列出的任何远程组件都具有类型 "scs-app"

  • 如果 "appName" 属性存在,则将 "id" 设置为 "appName" 值。显示名称将与 "name"(如果指定)相同,或者回退到 "id" 值。