主题必须具有 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"
值。