コンポーネントの開発について

独自のカスタムコンポーネントを開発することにより、選択したページ・テクノロジを使用してサイト・ページ内に埋め込むことのできる複合要素を作成できます。これにより、Oracle Content Managementで提供されるコンポーネントのリストを効果的に拡張できます。

登録されたすべてのコンポーネントのエントリは、コンポーネント・カタログに格納されます。これは、登録されたすべてのコンポーネントのエントリを含む、Oracle Content Management内のフォルダです。

テンプレート、テーマ、コンポーネント、サイトまたはサイト・ページについて、authsite、content、pages、scstemplate_*、_comps、_components、_compsdelivery、_idcservice、_sitescloud、_sitesclouddelivery、_themes、_themesdeliveryといった名前を使用しないでください。documentsおよびsitesは、サイト・ページには使用できますが、テンプレート、テーマ、コンポーネントまたはサイトには使用しないでください。

コンポーネント・タイプ

コンポーネント・カタログでは、次のタイプのコンポーネントがサポートされています:

  • ローカル・コンポーネント

  • インライン・フレームでレンダリングされるローカル・コンポーネント

  • リモート・コンポーネント

コンポーネントのタイプは、コンポーネント・フォルダの拡張属性xScsAppTypeとして格納されます。有効な値は次のとおりです。

タイプ 説明

ローカル・コンポーネント

すべての依存関係がローカルであることが想定されています。

インライン・フレームでレンダリングされるローカル・コンポーネント

コンポーネントは、Oracle Content Managementと同じドメインから処理されます。

リモート・コンポーネント

コンポーネントは、リモートの場所から提供されます。

コンポーネント・ファイル構造

各タイプのコンポーネントは、コンポーネント・カタログで作成された場合、それらの実装方法に基づいて異なるファイル・セットを含んでいます。

ローカル・コンポーネント:

/Components/component-name
    appinfo.json
    _folder_icon.jpg
    assets
        settings.html
        render.js

インライン・フレームを使用するローカル・コンポーネント:

/Components/component-name
    appinfo.json
    _folder_icon.jpg
    assets
        settings.html
        render.js
        js
            sites.min.js
            knockout.min.js
            jquery.min.js

リモート・コンポーネント:

/Components/component-name
    appinfo.json
    _folder_icon.jpg
    keys.json

フォルダのメタデータ

コンポーネント登録データは、フォルダ・メタデータに格納されます。次のプロパティは、コンポーネントとそのタイプを一意に識別するために使用されます。

プロパティ 説明

app name

コンポーネント名を指定するフォルダ名。

app description

フォルダの説明。

app guid

すべてのコンポーネントが、GUIDに関連付けられており、拡張属性xScsItemGUIDとして格納されます。GUIDは、コンポーネント作成時にサーバーによって生成されます。

app type

コンポーネント・タイプを指定するプロパティ。拡張属性xScsApTypeとして格納されます。

注:

拡張属性xScsAppIconUrlとして格納されているプロパティiconUrlは推奨されていません。

appinfo.jsonファイル

各タイプのコンポーネントのappinfo.json登録ファイルには、フォルダ・メタデータで利用できないデータのみが含まれています。フォルダ・メタデータで定義されているコンポーネント・プロパティは、appinfo.jsonファイル上で重複していません。

ローカル・コンポーネント:

{
        "settingsData":{
                "settingsHeight":80,
                "settingsRenderOption"; "dialog",
                "settingsWidth":300,
                "componentLayouts":[],
                "triggers":[],
                "actions":[]
        },
        "initialData":{
                "customSettingsData":[],
        }
}

インライン・フレームでレンダリングされるローカル・コンポーネント:

{
        "endpoints": {
              "settings": {
                      "height": "300",
                      "width": "400"
              }
        }
        "initialData": {
                "customSettingsData": {}
        }
}

リモート・コンポーネント:

{
        "endpoints": {
              "widget": {
                     "url": "http://www.externaldomain.com/app/render.html"
              }
              "settings": {
                      "url": "http://www.externaldomain.com/app/settings.html",
                      "height": "300",
                      "width": "400"
              }
        }
        "initialData": {
              "customSettingsData": {}
        }
}

ローカル・コンポーネントには、登録されたurl値がありません。それらでは、コンテンツを編集できる特定のファイルが使用されますが、その場所や名前は変更できません。

  • ローカル・コンポーネントでは、ファイルassets/render.jsおよびassets/settings.htmlが使用されます。

  • インライン・フレームでレンダリングされるローカル・コンポーネントでは、ファイルassets/render.htmlおよびassets/settings.htmlが使用されます。

  • リモート・コンポーネントでは、url値が指定されているものが使用されます。