主題必須要有一個指定主題中所使用元件的 components.json
檔案,它的位置在 /ThemeName/components.json
。
此檔案必須包含有效的 JSON,而且最低極限為必須包含一個空的 JSON 陣列 []
。
components.json
檔案語法會列出所有本機元件並完全支援元件分類。(遠端元件在「元件目錄」中註冊。)
不論您在主題層級的 components.json
檔案中增加了哪些元件 (包括未增加任何元件),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"
特性。雖然 "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 |
Content |
COMP_CONFIG_CUSTOM_CATEGORY_NAME |
Custom |
COMP_CONFIG_MEDIA_CATEGORY_NAME |
Media |
COMP_CONFIG_SOCIAL_CATEGORY_NAME |
Social |
COMP_CONFIG_TEXT_CATEGORY_NAME |
Text |
每個類別物件中的 "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"
值。