components.jsonファイルと形式の理解
components.jsonファイルは、テーマ付きコンポーネントに使用されます。 テーマには、テーマで使用されるコンポーネントを指定する/ThemeName/components.json
にあるcomponents.jsonファイルが必要です。 これは、コンポーネントがページにドロップされ、components.jsonファイルにエントリがない場合に使用されるappInfo.jsonファイルとは異なります。 components.jsonファイルでは、各テーマのコンポーネントに対して異なる値を持つ異なるテーマを設定できます。 ただし、appInfo.jsonファイルを使用する場合、コンポーネントの値は1つのみです。
components.jsonファイルには有効なJSONが含まれている必要があり、ファイルに含める必要がある最小値は空のJSON配列[]
です。
components.json
ファイルの構文では、すべてのローカル・コンポーネントがリストされ、コンポーネントのカテゴリ化が十分にサポートされています。 (リモート・コンポーネントは、コンポーネント・カタログに登録されます)。
テーマ・レベルのcomponents.json
ファイル(なしを含む)にどのコンポーネントが追加されても、Oracle Content Managementはユーザーが使用できるデフォルトのコンポーネント・セットを移入します。 このデフォルトのセットは、ソース・コードで定義されます。 次のリストに、コンポーネント、およびインライン・フレームでレンダリングされる(シード済)コンポーネントを示します。 さらに、サービス・レベルで登録されていて、インスタンスのユーザーが使用できるようにするリモート・コンポーネントもすべて、サイト・ビルダーで使用できます。
Oracle Content Managementには、次のローカル・コンポーネントが含まれています。
名前 | タイプ | ID |
---|---|---|
タイトル |
scs-title |
scs-title |
段落 |
scs-paragragh |
scs-paragragh |
テキスト | scs-title | scs-text |
イメージ |
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-dynamiclist | scs-dynamiclist |
推奨事項 | scs-recommendation | scs-recommendation |
記事(カスタム・コンポーネント) |
scs-component |
scs-comp-article |
ヘッドライン(カスタム・コンポーネント) |
scs-component |
scs-comp-headline |
イメージとテキスト(カスタム・コンポーネント) |
scs-component |
scs-comp-image-text |
インライン・フレームにレンダリングされるこれらのコンポーネントは、Oracle Content Managementに含まれています。 それらには、登録されたリモート・コンポーネントは含まれません。
名前 | タイプ | ID |
---|---|---|
会話 |
scs-app |
会話 |
Documentsマネージャ |
scs-app |
Documentsマネージャ |
プロジェクト・ライブラリ | scs-app | プロジェクト・ライブラリ |
会話リスト | scs-app | 会話リスト |
開始フォーム | scs-app | 開始フォーム |
Task List | scs-app | Task List |
タスクの詳細 | 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"
プロパティがありました。"appName"
は、"id"
プロパティが使用できない場合も機能しますが、"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"
プロパティは、デフォルト・コンポーネントにあるタイプのいずれかに等しい必要があります。"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"
値にフォールバックします。