components.jsonファイルおよびフォーマットの理解

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