テーマには、テーマで使用されるコンポーネントを指定する、/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"
値にフォールバックします。