關於開發元件

開發自己的自訂元件可讓您使用任何選擇的頁面技術,開發可內嵌於網站頁面內的複合元素。這實際上可讓您擴充 Oracle Content Management 隨附的元件清單。

所有已註冊元件的項目都儲存在「元件目錄」中,這個資料夾位於 Oracle Content Management,其中包含所有已註冊的元件項目。

請勿使用下列作為樣板、主題、元件、網站、或網站頁面的名稱:authsite、content、pages、scstemplate_*、_comps、_components、_compsdelivery、_idcservice 、_sitescloud、_sitesclouddelivery、_themes、_themesdelivery。您可以使用下列名稱作為網站頁面的名稱,但不可以作為樣板、主題、元件或網站的名稱:文件、網站。

元件類型

「元件目錄」支援下列元件類型:

  • 本機元件

  • 在內嵌框架中呈現的本機元件

  • 遠端元件

此元件類型會儲存為元件資料夾的擴充屬性 "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

資料夾描述資料

元件註冊資料儲存在資料夾描述資料中。下列特性可用來唯一識別元件及其類型。

特性 描述

應用程式名稱

指定元件名稱的資料夾名稱。

應用程式描述

資料夾的描述。

應用程式 GUID

每個元件都與一個 GUID 關聯,並且會儲存為擴充屬性 xScsItemGUID。元件建立時,將由伺服器產生GUID。

應用程式類型

此特性會指定元件類型。它會儲存為擴充屬性 xScsApType

註:

儲存為擴充屬性 xScsAppIconUrliconUrl 特性已不再使用。

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.jsassets/settings.html 檔案。

  • 在內嵌框架中呈現的本機元件使用 assets/render.htmlassets/settings.html 檔案。

  • 遠端元件使用所指定的任何 "url" 值。