內容片段模型 content-fragment-models

Adobe Experience Manager (AEM)中的內容片段模型as a Cloud Service定義內容片段的內容結構。 這些片段隨後可用於頁面製作,或用作Headless內容的基礎。

若要使用內容片段模式,您可以:

建立內容片段模型 creating-a-content-fragment-model

  1. 導覽至​ 工具一般,然後開啟​ 內容片段模型

  2. 導覽至適合您組態或子組態的資料夾。

  3. 使用​ 建立 ​開啟精靈。

    note caution
    CAUTION
    如果尚未啟用使用內容片段模式,將無法使用​ 建立 ​選項。
  4. 指定​ 模型標題
    您也可以定義各種屬性;例如,新增​ 標籤描述、選取​ 啟用模型 ​以視需要啟用模型並定義
    預設預覽URL模式

    note note
    NOTE
    如需完整詳細資訊,請參閱內容片段模式 — 屬性

    標題和說明

  5. 使用​ 建立 ​儲存空的模型。 訊息會指出動作是否成功,您可以選取​ 開啟 ​立即編輯模型,或選取​ 完成 ​返回主控台。

CAUTION
如果要查詢多個引用的片段,則建議不要讓各種片段模式具有名稱相同,但型別不同的欄位名稱。
如需詳細資訊,請參閱搭配內容片段使用的AEM GraphQL API — 限制

內容片段模型 — 屬性 content-fragment-model-properties

這些屬性是在您建立模型時定義,並且稍後可以使用內容片段模型的​ 屬性 ​選項進行編輯:

  • 基本

    • 模型標題

    • 標籤

    • 說明

    • 啟用模型

    • 預設預覽URL模式
      內容片段編輯器可讓作者在外部前端應用程式中​ 預覽 ​其內容。 設定​ 預覽服務 ​後,請新增前端應用程式的URL。

      預覽URL應遵循此模式:
          https://<preview_url>?param=${expression}

      可用的運算式包括:

      • ${contentFragment.path}
      • ${contentFragment.model.path}
      • ${contentFragment.model.name}
      • ${contentFragment.variation}
      • ${contentFragment.id}
    • 上傳影像

定義內容片段模型 defining-your-content-fragment-model

內容片段模式透過選擇​ 資料型別,有效地定義了結果內容片段的結構。 使用模型編輯器,您可以新增資料型別的例項,然後將其設定以建立必填欄位:

CAUTION
編輯現有內容片段已使用的模型可能會影響這些相依片段。
  1. 導覽至​ 工具一般,然後開啟​ 內容片段模型

  2. 導覽至容納您的內容片段模式的資料夾。

  3. 開啟​ 編輯 ​所需的模型;使用快速動作,或選取模型,然後從工具列選取動作。

    開啟模型編輯器後,會顯示:

    • 左:欄位已定義
    • 右:資 料類型 ,可用於建立欄位( 和屬性 ,以供建立欄位後使用)
    note note
    NOTE
    當欄位定義為​ 必要 ​時,左窗格中指示的​ 標籤 ​會標示為字元(*)。

屬性

  1. 新增欄位

    • 將欄位所需的資料型別拖曳到所需位置:

      拖曳資料型別以建立欄位

    • 將欄位新增至模型後,右側面板會顯示可針對該特定資料型別定義的​ 屬性。 您可以在此處定義該欄位的必要條件。

      • 許多屬性不言自明,如需詳細資訊,請參閱屬性

      • 輸入​ 欄位標籤 ​會自動完成​ 屬性名稱 (如果空白),之後可以手動更新。

        note caution
        CAUTION
        手動更新資料型別的屬性​ Property Name ​時,名稱必須僅包含​ A-Z、a-z、0-9和下劃線「_」作為特殊字元。
        如果在舊版AEM中建立的模型包含非法字元,請移除或更新這些字元。

      例如:

      欄位屬性

  2. 移除欄位

    選取必填欄位,然後選取垃圾桶圖示。 系統會要求您確認動作。

    移除

  3. 新增所有必要欄位,並視需要定義相關屬性。 例如:

    儲存

  4. 選取​ 儲存 ​以保留定義。

資料類型 data-types

定義模型時可選用多種資料型別:

  • 單行文字

    • 為單行文字新增欄位;可以定義最大長度
    • 欄位可設定為允許片段作者建立欄位的新執行個體
  • 多行文字

    • 可能是RTF、純文字或Markdown的文字區域
    • 欄位可設定為允許片段作者建立欄位的新執行個體
    note note
    NOTE
    文字區域是否為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
    變數可以有與相同片段變數相同的​ 唯一 ​值,但與其他片段變數中使用的值不同。
  • 如需特定資料型別及其屬性的詳細資訊,請參閱​ 內容參考

  • 如需特定資料型別及其屬性的詳細資訊,請參閱​ 片段參考(巢狀片段)

  • 可翻譯

    核取內容片段模型編輯器中欄位上的​ 可翻譯 ​核取方塊將:

    • 確認欄位的屬性名稱已新增至翻譯組態,內容/content/dam/<sites-configuration> (如果尚未存在)。
    • 對於GraphQL:將內容片段欄位上的<translatable>屬性設定為yes,以允許GraphQL查詢篩選僅包含可翻譯內容的JSON輸出。

驗證 validation

各種資料型別現在包含定義在結果片段中輸入內容時適用的驗證需求的可能性:

  • 單行文字

    • 與預先定義的規則運算式比較。
  • 數字

    • 檢查特定值。
  • 內容參考

    • 測試特定型別的內容。
    • 只能參考指定檔案大小或更小的資產。
    • 只能參考預先定義的寬度和/或高度範圍(以畫素為單位)內的影像。
  • 片段參考

    • 測試特定內容片段模型。
  • 最小專案數 / 最大專案數

    已定義為​ 多個欄位 (以​ Render As ​設定)的欄位具有選項:

    • 最小專案數
    • 最大專案數

    已在內容片段編輯器中驗證這些專案。

使用參照來形成巢狀內容 using-references-to-form-nested-content

內容片段可使用下列任一種資料型別來形成巢狀內容:

  • 內容參考

    • 提供其他內容的簡單參照;任何型別。
    • 可以為一個或多個參考(在產生的片段中)設定。
  • 片段參考 (巢狀片段)

    • 根據指定的特定模型,參考其他片段。

    • 可讓您包含/擷取結構化資料。

      note note
      NOTE
      當您透過GraphQL🔗使用內容片段的Headless內容傳遞時,此方法特別令人感興趣。

      * 可以為一個或多個參考(在產生的片段中)設定。

NOTE
AEM針對下列專案提供週期性保護:
  • 內容參照
    這可防止使用者新增對目前片段的引用,並可能導致空白的片段引用選取器對話方塊。

  • GraphQL中的片段參考
    如果您建立深層查詢,且該查詢傳回多個互相參照的內容片段,則它會在第一次出現時傳回null。

CAUTION
如果要查詢多個引用的片段,則建議不要讓各種片段模式具有名稱相同,但型別不同的欄位名稱。
如需詳細資訊,請參閱搭配內容片段使用的AEM GraphQL API — 限制

內容參考 content-reference

內容參考可讓您轉譯來自其他來源的內容;例如,影像、頁面或體驗片段。

除了標準屬性之外,您還可以指定:

  • 根路徑,指定儲存任何參考內容的位置

    note note
    NOTE
    如果您想在使用內容片段編輯器時直接在此欄位上傳和參考影像,則必須使用此選項。
    如需詳細資訊,請參閱參考影像
  • 可參考的內容型別

    note note
    NOTE
    如果您想要在使用內容片段編輯器時直接上傳和參考此欄位中的影像,這些必須包含​ 影像
    如需詳細資訊,請參閱參考影像
  • 檔案大小限制

  • 如果參照影像:

    • 顯示縮圖
    • 影像高度和寬度的限制

內容參考

片段參考(巢狀片段) fragment-reference-nested-fragments

片段參考會參考一或多個內容片段。 此功能可讓您擷取多個圖層的結構化資料,在擷取應用程式中使用的內容時特別感興趣。

例如:

  • 定義員工詳細資訊的模型;包括:
    • 定義僱主(公司)的模型參考
type EmployeeModel {
    name: String
    firstName: String
    company: CompanyModel
}

type CompanyModel {
    name: String
    street: String
    city: String
}
NOTE
片段參考對搭配GraphQL🔗使用內容片段的Headless內容傳遞特別感興趣。

除了標準屬性之外,您還可以定義:

  • 呈現為

    • multifield — 片段作者可以建立多個個別參考

    • fragmentreference — 允許片段作者選取片段的單一參考

  • 模型型別
    可選取多個模型。 將參照新增至內容片段時,任何參照的片段都必須使用這些模型建立。

  • 根路徑
    這會指定所參考之任何片段的根路徑。

  • 允許建立片段

    如此可讓片段作者根據適當的模型建立片段。

    • fragmentreferencecomposite — 允許片段作者藉由選取多個片段來建置複合

    片段參考

NOTE
已建立重複保護機制。 它禁止使用者在片段參考中選取目前的內容片段,並可能導致空白的片段參考選擇器對話方塊。
GraphQL中也有片段參考的週期性保護。 如果您在兩個互相參照的內容片段間建立深層查詢,則會傳回null。

啟用或停用內容片段模型 enabling-disabling-a-content-fragment-model

您可以​ 啟用 ​或​ 停用 ​您的內容片段模型,以完全控制其使用。

啟用內容片段模型 enabling-a-content-fragment-model

建立模型後,必須將其啟用,以便:

  • 可在建立內容片段時選擇。
  • 可在內容片段模型中參考。
  • 可供GraphQL使用,因此會產生結構描述。

若要啟用被標示為下列其中一項的模型:

  • 草稿 :新的(從未啟用)。
  • 已停用 :已特別停用。

您可從下列任一位置使用​ 啟用 ​選項:

  • 當選取所需的「模型」時,頂部工具列。
  • 對應的「快速動作」(Quick Action) (將滑鼠移到所需模型上)。

啟用草稿或已停用的模型

停用內容片段模型 disabling-a-content-fragment-model

也可以停用模型,以便:

  • 此模型無法再用來建立​ 新的 ​內容片段。

  • 但是:

    • GraphQL結構描述會持續產生,且仍可查詢(以避免影響JSON API)。
    • 您仍可以從GraphQL端點查詢及傳回任何以模型為基礎的內容片段。
  • 該模型無法再參考,但現有參考將保持不變,並且仍可以從GraphQL端點查詢和返回。

若要停用標示為​ 已啟用 ​的模型,您可從下列任一選項使用​ 停用 ​選項:

  • 當選取所需的「模型」時,頂部工具列。
  • 對應的「快速動作」(Quick Action) (將滑鼠移到所需模型上)。

停用啟用的模型

允許資產資料夾中的內容片段模型 allowing-content-fragment-models-assets-folder

若要實作內容控管,您可以在Assets資料夾上設定​ 原則,以控制允許在該資料夾中建立片段的內容片段模型。

若要為​ 允許的內容片段模型 ​設定​ 原則

  1. 瀏覽並開啟必要的Assets資料夾的​ 屬性

  2. 開啟​ 原則 ​標籤,您可以在其中設定:

    • 繼承自<folder>

      建立新的子資料夾時,會自動繼承原則;如果子資料夾需要允許與父資料夾不同的模型,則可以重新設定原則(並中斷繼承)。

    • 允許的內容片段模型(依路徑

      可允許多個模型。

    • 允許的內容片段模型(依標籤)

      可允許多個模型。

    內容片段模型原則

  3. 儲存 ​任何變更。

允許用於資料夾的內容片段模型的解析如下:

  • 允許的內容片段模型 ​的​ 原則
  • 如果空白,請嘗試使用繼承規則來決定原則。
  • 如果繼承鏈結未傳遞結果,請檢視該資料夾的​ Cloud Service ​設定(也請先直接再透過繼承)。
  • 如果以上所有內容均未提供任何結果,則該資料夾不允許使用模型。

刪除內容片段模型 deleting-a-content-fragment-model

CAUTION
刪除內容片段模型可能會影響相依片段。

若要刪除內容片段模型:

  1. 導覽至​ 工具一般,然後開啟​ 內容片段模型

  2. 導覽至容納您的內容片段模式的資料夾。

  3. 選取您的模型,然後從工具列​ 刪除

    note note
    NOTE
    如果參照了模型,系統會發出警告,以便您採取適當的動作。

發佈內容片段模型 publishing-a-content-fragment-model

發佈任何相依內容片段時/之前,需要發佈內容片段模型。

若要發佈內容片段模型:

  1. 導覽至​ 工具一般,然後開啟​ 內容片段模型

  2. 導覽至容納您的內容片段模式的資料夾。

  3. 選取您的模型,然後從工具列選取​ Publish
    發佈狀態會顯示在主控台中。

    note note
    NOTE
    如果您發佈的內容片段尚未發佈模式,選擇清單會指出這一點,模式會與片段一起發佈。

取消發佈內容片段模型 unpublishing-a-content-fragment-model

如果內容片段模型未由任何片段參考,則可取消發佈這些模型。

若要取消發佈內容片段模型:

  1. 導覽至​ 工具一般,然後開啟​ 內容片段模型

  2. 導覽至容納您的內容片段模型的資料夾。

  3. 選取您的模型,然後從工具列​ 取消發佈
    主控台會指出發佈狀態。

如果您嘗試取消發佈一個或多個片段目前使用的模型,則會顯示錯誤警告。 例如:

取消發佈使用中的模型時出現 內容片段模型錯誤訊息

此訊息建議您檢查參考面板以進一步調查:

參考中的內容片段模型

鎖定的 (已發佈的) 內容片段模型 locked-published-content-fragment-models

此功能為已發佈的內容片段模型提供控管。

挑戰 the-challenge

  • 內容片段模型決定AEM中GraphQL查詢的結構描述。

    • AEM GraphQL結構描述會在建立內容片段模型後立即建立,而且可存在於製作和發佈環境中。

    • 發佈上的結構描述最為關鍵,因為它們為JSON格式的內容片段內容的即時傳送奠定了基礎。

  • 修改內容片段模型或編輯內容片段模型時,可能會出現問題。 這表示結構描述變更,進而可能影響現有的GraphQL查詢。

  • 將新欄位新增到內容片段模式通常不應有任何有害影響。 但是,修改現有資料欄位(例如,其名稱)或刪除欄位定義時,將會在請求這些欄位時中斷現有GraphQL查詢。

需求 the-requirements

  • 讓使用者瞭解在編輯已用於即時內容傳送的模型(即已發佈的模型)時的風險。

  • 此外,也可避免非預期的變更。

如果修改後的模型重新發佈,則其中任何一個條件都可能中斷查詢。

解決方案 the-solution

為了解決這些問題,內容片段模型在發佈後立即在作者上​ 鎖定 ​為唯讀模式。 此狀態由​ 鎖定 ​表示:

鎖定內容片段模型 的卡片

當模型為​ 鎖定 (在「唯讀」模式中)時,您可以檢視模型的內容和結構,但無法進行編輯。

您可以從主控台或模型編輯器管理​ 已鎖定的 ​模型:

  • 主控台

    從主控台,您可以使用工具列中的​ 解除鎖定 ​和​ 鎖定 ​動作來管理唯讀模式:

    鎖定的內容片段模型的工具列

    • 您可以​ 解鎖 ​模型以啟用編輯。

      如果您選取​ 解除鎖定,會顯示警告,而且您必須確認​ 解除鎖定 ​動作:
      解鎖內容片段模型 時出現訊息

      然後您可以開啟模型以進行編輯。

    • 您之後也可以​ 鎖定 ​模型。

    • 重新發佈模型會立即將其傳回​ 鎖定 (唯讀)模式。

  • 模型編輯器

    • 當您開啟已鎖定的模型時,系統會警告您,並顯示三個動作: 取消檢視唯讀編輯

      檢視鎖定的內容片段模型時出現 訊息

    • 如果您選取​ 檢視唯讀,您可以檢視模型的內容和結構:

      檢視唯讀 — 鎖定的內容片段模型

    • 如果您選取​ 編輯,您可以編輯並儲存您的更新:

      編輯 — 鎖定的內容片段模型

      note note
      NOTE
      頂端可能仍會顯示警告,但此時模型已由現有內容片段使用。
    • 取消 ​會帶您返回主控台。

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab