在Adobe Experience Manager as a Cloud Service中,內容片段會擴充標準資產;請參閱:
建立和管理內容片段 和 使用內容片段編寫頁面 以取得有關內容片段的進一步資訊。
管理資產 以取得標準資產的詳細資訊。
基本 組成部分 以下是內容片段的:
個別內容片段是以內容片段模式為基礎:
內容片段模型會在建立內容片段時定義其結構。
片段會參考模型;因此,模型的變更可能會影響或確實影響任何相依片段。
模型是由資料型別建立而成。
新增新變數的函式等,必須據此更新片段。
若要顯示/轉譯內容片段,您的帳戶必須具備 read
模型的許可權。
對現有內容片段模型所做的任何變更都可能影響相依片段;這可能會導致這些片段中的孤立屬性。
內容片段管理(CFM)是Adobe Experience Manager (AEM) Assets的一部分,如下所示:
將內容片段視為AEM Sites功能,例如:
根據內容片段模型的內容片段會對應至單一資產:
所有內容都儲存在 jcr:content/data
資產節點:
元素資料儲存在主子節點下:
jcr:content/data/master
變數會儲存在具有變數名稱的子節點下:例如, jcr:content/data/myvariation
每個元素的資料都會以元素名稱之屬性的形式儲存在個別子節點中:例如,元素的內容 text
儲存為屬性 text
於 jcr:content/data/master
中繼資料和相關內容儲存在下方 jcr:content/metadata
除了標題和說明,這些不會視為傳統中繼資料並儲存在 jcr:content
與標準資產一樣,內容片段位於下:
/content/dam
另請參閱 內容片段 — 刪除注意事項.
若要與資產核心整合:
內容片段管理(CFM)功能以Assets核心為基礎。
CFM針對卡片/欄/清單檢視中的專案提供自己的實作;這些增效模組會插入現有的Assets內容呈現實作中。
已擴充多個Assets元件,以符合內容片段。
此 內容片段元件是核心元件的一部分. 另請參閱 開發核心元件 以取得更多詳細資料。
內容片段可以從AEM頁面引用,就像任何其他資產型別一樣。 AEM提供 內容片段核心元件 - a 可讓您在頁面上包含內容片段的元件. 您也可以擴充此 內容片段 核心元件。
元件使用 fragmentPath
屬性以參考實際內容片段。 此 fragmentPath
屬性的處理方式與其他資產型別的類似屬性相同;例如,將內容片段移至其他位置時。
元件可讓您選取要顯示的變數。
此外,也可以選取段落範圍來限制輸出;例如,這可用於多欄輸出。
元件允許中間內容:
元件可讓您在參照片段的段落之間放置其他資產(影像等)。
對於中間內容:
請注意不穩定參考的可能性。 中間內容(在製作頁面時新增)與旁邊段落沒有固定的關係。 在中間內容的位置之前插入新段落(在內容片段編輯器中)可能會失去相對位置。
請考慮使用其他引數(例如變數和段落篩選器)來設定要在頁面上呈現的內容。
內容片段模型:
在頁面上使用內容片段時,會參考其所根據的內容片段模式。
這表示,如果您在發佈頁面時尚未發佈模型,系統會標籤此模型,並將模型新增至要與頁面一起發佈的資源。
內容片段可以整合至:
翻譯
內容片段與 AEM翻譯工作流程. 在架構層級,這表示:
內容片段的個別翻譯是單獨的片段;例如:
它們位於不同的語言根下,但共用相關語言根下的相對路徑:
/content/dam/<path>/en/<to>/<fragment>
與
/content/dam/<path>/de/<to>/<fragment>
除了規則型路徑以外,內容片段的不同語言版本之間沒有其他連線。 雖然UI提供了在語言變體之間導覽的方法,但這些變體會作為兩個單獨的片段處理。
AEM翻譯工作流程可搭配使用 /content
:
/conf
,這些不會包含在這類翻譯中。 您可以國際化UI字串。中繼資料結構描述
內容片段使用並重複使用 中繼資料結構 可使用標準資產定義的屬性。
CFM提供專屬的結構描述:
/libs/dam/content/schemaeditors/forms/contentfragment
如有需要,可延長該期限。
個別結構表單已與片段編輯器整合。
您可以使用伺服器端API來存取您的內容片段;請參閱:
Adobe建議使用伺服器端API,而非直接存取內容結構。
下列三個介面可作為進入點:
內容片段 (內容片段)
此介面可讓您以抽象方式處理內容片段。
介面提供您執行下列作業的方法:
管理基本資料(例如,取得名稱、取得/設定標題/說明)
存取中繼資料
存取元素:
清單元素
依名稱取得元素
建立元素(請參閱 警告)
存取元素資料(請參閱 ContentElement
)
為片段定義的清單變數
全域建立變數
管理關聯內容:
存取片段的模型
代表片段主要元素的介面包括:
內容元素 (內容元素)
內容變數 (ContentVariation)
所有三個介面( ContentFragment
, ContentElement
, ContentVariation
)延伸 Versionable
介面,新增內容片段所需的版本設定功能:
可調整以下內容:
ContentFragment
可調整為:
Resource
— 基礎Sling資源;更新基礎 Resource
直接需要重建 ContentFragment
物件。
Asset
- DAM Asset
代表內容片段的抽象;更新 Asset
直接需要重建 ContentFragment
物件。
ContentElement
可調整為:
ElementTemplate
— 用於存取元素的結構資訊。Resource
可調整為:
ContentFragment
請注意:
整個API的設計目的是 非 自動保留變更(除非API JavaDoc另有說明)。 因此,請一律認可個別請求的資源解析器(或您實際使用的解析器)。
可能需要額外努力的任務:
Adobe建議您建立變數,從 ContentFragment
. 這可確保所有元素都共用此變數,並視需要更新適當的全域資料結構,以反映內容結構中的新變數。
透過元素移除現有變數,使用 ContentElement.removeVariation()
,不會更新指派給變數的全域資料結構。 若要確保這些資料結構保持同步,請使用 ContentFragment.removeVariation()
而是會全域移除變數。
使用者端API為內部API。
請參閱下列內容:
filter.xml
此 filter.xml
針對內容片段管理進行設定,使其不會與資產核心內容套件重疊。
請考量此背景資訊。 您不應在此變更任何專案(因為它已標示為 私人區域 存放庫中),但有時可能有助於瞭解事情背後的運作方式。
編輯內容片段是原子性的,它可以跨越多個檢視(=HTML頁面)。 因此,原子式多檢視編輯功能不是典型的AEM概念,內容片段使用所謂的 編輯工作階段.
當使用者在編輯器中開啟內容片段時,會啟動編輯工作階段。 當使用者透過選取以下任一專案離開編輯器時,編輯工作階段即完成 儲存 或 取消.
技術上,所有編輯均於下列日期完成: 即時 內容,就像所有其他AEM編輯一樣。 開始編輯工作階段時,會建立目前未編輯狀態的版本。 如果使用者取消編輯,則會還原該版本。 如果使用者按一下 儲存,不會執行任何特定動作,因為編輯作業執行於 即時 因此,所有變更都會持續存在。 此外,按一下 儲存 觸發某些背景處理,例如建立全文檢索搜尋資訊或處理混合媒體資產,或兩者同時進行。
對於邊緣案例有一些安全措施;例如,如果使用者嘗試離開編輯器而未儲存或取消編輯工作階段。 此外,定期自動儲存也可防止資料遺失。
兩個使用者可以同時編輯相同的內容片段,因此會覆寫彼此的變更。 若要防止此情況,必須套用DAM管理的 簽出 對片段執行的動作。
若要實現此目標,您可以將代表API的資源調整為:
com.adobe.cq.dam.cfm.ContentFragment
例如:
// first, get the resource
Resource fragmentResource = resourceResolver.getResource("/content/dam/fragments/my-fragment");
// then adapt it
if (fragmentResource != null) {
ContentFragment fragment = fragmentResource.adaptTo(ContentFragment.class);
// the resource is now accessible through the API
}
若要以程式設計方式建立內容片段,請使用 FragmentTemplate
從模型資源改寫。
例如:
Resource modelRsc = resourceResolver.getResource("...");
FragmentTemplate tpl = modelRsc.adaptTo(FragmentTemplate.class);
ContentFragment newFragment = tpl.createFragment(parentRsc, "A fragment name", "A fragment description.");
此 自動儲存間隔 (以秒為單位測量)可使用組態管理員(ConfMgr)定義:
節點: <conf-root>/settings/dam/cfm/jcr:content
屬性名稱: autoSaveInterval
類型:Long
預設: 600
(10分鐘);此定義的日期為 /libs/settings/dam/cfm/jcr:content
如果您想要設定5分鐘的自動儲存間隔,請在節點上定義屬性。
例如:
節點: /conf/global/settings/dam/cfm/jcr:content
屬性名稱: autoSaveInterval
類型:Long
值: 300
(5分鐘等於300秒)
如需詳細資訊,請參閱