內容片段模型 content-fragment-models
AEM中的內容片段模型定義了您內容片段,作為您Headless內容基礎的內容結構。
若要使用內容片段模型,您可以:
- 為您的執行個體啟用內容片段模型功能。
- 建立,並設定您的內容片段模型。
- 啟用您的內容片段模型,以便在建立內容片段時使用。
- 藉由設定 原則,在必要的Assets資料夾上允許您的內容片段模型。
建立內容片段模型 creating-a-content-fragment-model
定義內容片段模型 defining-your-content-fragment-model
內容片段模型有效定義結果內容片段的結構,方法是使用 資料型別 的選項。 使用模型編輯器,您可以新增資料型別的例項,然後將其設定以建立必填欄位:
-
導覽至 工具、Assets,然後開啟 內容片段模型。
-
導覽至容納您的內容片段模式的資料夾。
-
開啟 編輯 所需的模型;使用快速動作,或選取模型,然後從工具列選取動作。
開啟模型編輯器後,會顯示:
- 左:欄位已定義
- 右:資 料類型 ,可用於建立欄位( 和屬性 ,以供建立欄位後使用)
note note NOTE 當欄位為 必要 時,左窗格中指示的 標籤 會標示為字元(*)。 -
新增欄位
-
將欄位所需的資料型別拖曳到所需位置:
-
將欄位新增至模型後,右側面板會顯示可針對該特定資料型別定義的 屬性。 您可以在此處定義該欄位的必要條件。
-
許多屬性不言自明,如需詳細資訊,請參閱屬性。
-
輸入 欄位標籤 會自動完成 屬性名稱 (如果空白),之後可以手動更新。
note caution CAUTION 手動更新資料型別的屬性 屬性名稱 時,名稱必須僅包含A-Z、a-z、0-9以及底線「_」作為特殊字元。 如果在舊版AEM中建立的模型包含非法字元,請移除或更新這些字元。
例如:
-
-
-
移除欄位
選取必填欄位,然後按一下垃圾桶圖示。 系統會要求您確認動作。
-
新增所有必要欄位,並視需要定義相關屬性。 例如:
-
選取 儲存 以保留定義。
資料類型 data-types
定義模型時可選用多種資料型別:
-
單行文字
- 新增一行或多行文字的欄位;可以定義最大長度
-
多行文字
- 可能是RTF、純文字或Markdown的文字區域
-
數字
- 新增一或多個數值欄位
-
布林值
- 新增布林值核取方塊
-
日期和時間
- 新增日期和/或時間
-
分項清單
- 新增一組核取方塊、選項按鈕或下拉式欄位
-
標籤
- 允許片段作者存取及選取標籤區域
-
內容參考
- 參考任何型別的其他內容;可用於建立巢狀內容
- 如果參照了影像,您可以選擇顯示縮圖
-
片段參考
-
參考其他內容片段;可用於建立巢狀內容
-
可以設定此資料類型以允許片段作者:
- 直接編輯參考的片段。
- 根據適當的模型建立內容片段
-
-
JSON物件
-
允許內容片段作者在片段的對應元素中輸入JSON語法。
- 允許AEM儲存您從其他服務複製並貼上的直接JSON。
- JSON會傳遞,並在GraphQL中輸出為JSON。
- 在內容片段編輯器中包括JSON語法醒目提示、自動完成和錯誤醒目提示。
-
-
索引標籤預留位置
-
允許引進索引標籤,以在編輯內容片段內容時使用。
這會在模型編輯器中顯示為分隔線,用於分隔內容資料型別清單的各個區段。 每個例項代表新索引標籤的開始。
在片段編輯器中,每個例項都會顯示為一個索引標籤。note note NOTE 此資料型別僅用於格式設定,AEM GraphQL結構描述會忽略此資料型別。
-
屬性 properties
許多屬性的含義一目瞭然,對於某些屬性,其他詳細資訊如下:
-
屬性名稱
手動更新資料型別的這個屬性時,名稱 必須 僅包含 個 A-Z、a-z、0-9,且底線「_」為特殊字元。
note caution CAUTION 如果在舊版AEM中建立的模型包含非法字元,請移除或更新這些字元。 -
呈現為
在片段中實現/轉譯欄位的各種選項。 這通常可讓您定義作者會看到欄位的單一例項,還是允許建立多個例項。 -
欄位標籤
輸入 欄位標籤 會自動產生 屬性名稱,然後可視需要手動更新。 -
驗證
基本驗證可由機制使用,例如 Required 屬性。 有些資料型別有額外的驗證欄位。 如需詳細資訊,請參閱驗證。 -
對於「多行」 資料類型 ,可將「預設類型 」定義為:
- RTF格式
- Markdown
- 純文字
如果未指定,此欄位會使用預設值 RTF。
在內容片段模型中變更 預設型別,只會在編輯器中開啟並儲存該片段後,對現有、相關的內容片段生效。
-
唯一
從目前模型建立的所有內容片段內容(適用於特定欄位)必須是唯一的。這是為了確保內容作者無法重複已新增至相同模型其他片段中的內容。
例如,內容片段模型中名為
Country
的 單行文字 欄位在兩個相依的內容片段中不能有值Japan
。 嘗試第二個執行個體時會發出警告。note note NOTE 確保每個語言根的唯一性。 note note NOTE 變數可以有與相同片段變數相同的 唯一 值,但與其他片段變數中使用的值不同。 -
如需特定資料型別及其屬性的詳細資訊,請參閱 內容參考。
-
如需特定資料型別及其屬性的詳細資訊,請參閱 片段參考(巢狀片段)。
驗證 validation
各種資料型別現在包含定義在結果片段中輸入內容時適用的驗證需求的可能性:
-
單行文字
- 與預先定義的規則運算式比較。
-
數字
- 檢查特定值。
-
內容參考
- 測試特定型別的內容。
- 只能參考指定檔案大小或更小的資產。
- 只能參考預先定義的寬度和/或高度範圍(以畫素為單位)內的影像。
-
片段參考
- 測試特定內容片段模型。
使用參照來形成巢狀內容 using-references-to-form-nested-content
內容片段可使用下列任一種資料型別來形成巢狀內容:
-
內容參照
這可防止使用者新增對目前片段的引用。 這可能會導致空的片段參考選擇器對話方塊。 -
GraphQL中的片段參考
如果您建立深層查詢,且該查詢傳回多個互相參照的內容片段,則該查詢在第一次出現時會傳回null。
內容參考 content-reference
內容參考可讓您轉譯來自其他來源的內容;例如,影像或內容片段。
除了標準屬性之外,您還可以指定:
-
任何參考內容的 根路徑
-
可參考的內容型別
-
檔案大小限制
-
如果參照影像:
- 顯示縮圖
- 影像高度和寬度的限制
片段參考(巢狀片段) fragment-reference-nested-fragments
「片段參考」會參考一或多個內容片段。 此功能在擷取用於應用程式的內容時特別有意義,因為它可讓您擷取具有多個圖層的結構化資料。
例如:
- 定義員工詳細資訊的模型;這些包括:
- 定義僱主(公司)的模型參考
type EmployeeModel {
name: String
firstName: String
company: CompanyModel
}
type CompanyModel {
name: String
street: String
city: String
}
除了標準屬性之外,您還可以定義:
-
呈現為:
-
multifield — 片段作者可以建立多個個別參考
-
fragmentreference — 允許片段作者選取片段的單一參考
-
-
模型型別
可選取多個模型。 製作內容片段時,必須已使用這些模型建立任何參照的片段。 -
根路徑
這會指定所參考之任何片段的根路徑。 -
允許建立片段
如此可讓片段作者根據適當的模型建立片段。
- fragmentreferencecomposite — 允許片段作者藉由選取多個片段來建置複合
啟用或停用內容片段模型 enabling-disabling-a-content-fragment-model
為了完全控制內容片段模型的使用,您可以設定其狀態。
啟用內容片段模型 enabling-a-content-fragment-model
建立模型後,必須將其啟用,以便:
- 可在建立內容片段時選擇。
- 可在內容片段模型中參照。
- 它可供GraphQL使用;因此會產生結構。
若要啟用被標示為下列其中一項的模型:
- 草稿 : mew (從未啟用)。
- 已停用 :已停用。
您可以從下列任一位置使用 啟用 選項:
- 當選取所需的「模型」時,頂部工具列。
- 對應的「快速動作」(Quick Action) (將滑鼠移到所需模型上)。
停用內容片段模型 disabling-a-content-fragment-model
也可以停用模型,以便:
-
此模型無法再用來建立 新的 內容片段。
-
但是:
- GraphQL結構描述會持續產生,且仍可查詢(以避免影響JSON API)。
- 您仍可以從GraphQL端點查詢及傳回任何以模型為基礎的內容片段。
-
該模型無法再參考,但現有參考將保持不變,並且仍可以從GraphQL端點查詢和返回。
若要停用標示為 已啟用 的模型,您可從下列任一選項使用 停用 選項:
- 當選取所需的「模型」時,頂部工具列。
- 對應的「快速動作」(Quick Action) (將滑鼠移到所需模型上)。
允許資產資料夾中的內容片段模型 allowing-content-fragment-models-assets-folder
若要實作內容控管,您可以在Assets資料夾上設定 原則,以控制允許在該資料夾中建立片段的內容片段模型。
若要為 允許的內容片段模型 設定 原則:
-
瀏覽並開啟必要的Assets資料夾的 屬性。
-
開啟 原則 標籤,您可以在其中設定:
-
繼承自
<folder>
建立子資料夾時,會自動繼承原則;如果子資料夾需要允許與父資料夾不同的模型,則可以重新設定原則(並中斷繼承)。
-
允許的內容片段模型(依路徑)
可允許多個模型。
-
允許的內容片段模型(依標籤)
可允許多個模型。
-
-
儲存 任何變更。
允許用於資料夾的內容片段模型的解析如下:
- 允許的內容片段模型 的 原則。
- 如果空白,請嘗試使用繼承規則來決定原則。
- 如果繼承鏈結未傳遞結果,請檢視該資料夾的 Cloud Service 設定(也請先直接再透過繼承)。
- 如果以上所有內容均未提供任何結果,則該資料夾不允許使用模型。
刪除內容片段模型 deleting-a-content-fragment-model
若要刪除內容片段模型:
-
導覽至 工具、Assets,然後開啟 內容片段模型。
-
導覽至容納您的內容片段模式的資料夾。
-
選取您的模型,然後從工具列 刪除。
note note NOTE 如果參照模型,則會發出警告。 採取適當的動作。
發佈內容片段模型 publishing-a-content-fragment-model
發佈任何相依內容片段時/之前,必須發佈內容片段模型。
若要發佈內容片段模型:
-
導覽至 工具、Assets,然後開啟 內容片段模型。
-
導覽至容納您的內容片段模式的資料夾。
-
選取您的模型,然後從工具列選取 Publish。
主控台會指出發佈狀態。note note NOTE 如果您發佈的內容片段尚未發佈模型,選擇清單會指出這一點,模型會與片段一起發佈。
取消發佈內容片段模型 unpublishing-a-content-fragment-model
如果內容片段模型未由任何片段引用,則可取消發佈這些模型。
若要取消發佈內容片段模型:
-
導覽至 工具、Assets,然後開啟 內容片段模型。
-
導覽至容納您的內容片段模式的資料夾。
-
選取您的模型,然後從工具列 取消發佈。
主控台會指出發佈狀態。
內容片段模型 — 屬性 content-fragment-model-properties
您可以編輯內容片段模型的 屬性:
-
基本
- 模型標題
- 標籤
- 說明
- 上傳影像