テーマには、テーマで使用されるコンポーネントを指定する、/ThemeName/components.jsonにあるcomponents.jsonファイルが必要です。
このファイルには有効なJSONを含める必要があり、ファイルに最小限含める必要があるのは空のempty JSON配列[]です。
components.jsonファイル構文は、すべてのローカル・コンポーネントをリストし、コンポーネントのカテゴリ化を完全にサポートしています。(リモート・コンポーネントはコンポーネント・カタログに登録されます。)
テーマレベルのcomponents.jsonファイルにどのようなコンポーネントを追加しようとも(noneを含む)、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 |
コンテンツ |
|
COMP_CONFIG_CUSTOM_CATEGORY_NAME |
カスタム |
|
COMP_CONFIG_MEDIA_CATEGORY_NAME |
メディア |
|
COMP_CONFIG_SOCIAL_CATEGORY_NAME |
ソーシャル |
|
COMP_CONFIG_TEXT_CATEGORY_NAME |
テキスト |
各カテゴリ・オブジェクトの"list"プロパティには、コンポーネント・オブジェクトの配列が含まれます。各コンポーネントまたはオブジェクトには、"type"および"id"プロパティが必要です。その他のプロパティはオプションです。
"type"プロパティは、デフォルト・コンポーネント内にあるタイプの1つと等しい必要があります。"type"がまだ存在しない場合、コンポーネントは表示されません。
"id"プロパティは、コンポーネント全体にわたって一意である必要があります。"id"がすでに存在することが判明している場合、コンポーネントは表示されません。
"name"プロパティは、ユーザー・インタフェース内のコンポーネントの表示名です。これにより、アプリケーション(現在はリモート・コンポーネント)の前の"appName"プロパティが置き換えられます。
その他すべてのプロパティは、前のリリースの場合と同じように処理されます。
components.jsonへの新規コンポーネントの追加
デフォルト・コンポーネントを変更することはできません。ただし、既存のデフォルト・コンポーネントに基づいて新しいコンポーネントを作成できます。たとえば、"scs-title"コンポーネントに基づいて、デフォルト・テキストを設定する新しいコンポーネントを作成できます。新しいコンポーネントを追加する最小限の要件は、"type"および"id"プロパティを指定することです。
"type"は、デフォルト・コンポーネント内にあるタイプの1つと等しい必要があります。"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"値にフォールバックします。