已將可編輯的範本引入:
允許專業作者 建立和編輯範本.
template-authors
群組。提供可保留動態連線至任何從這些頁面建立之頁面的範本。 這可確保對範本所做的任何變更都反映在頁面本身中。
讓頁面元件更通用,以便無須自訂即可使用核心頁面元件。
使用可編輯的範本,製作頁面的片段會獨立於元件中。 您可以在UI中設定必要的元件組合,因此不需要針對每個頁面變異開發新的頁面元件。
AEM 6.4.5.0或更新版本必須搭配使用可編輯的範本 SPA Editor.
靜態範本 也可供使用。
本文件:
提供建立可編輯範本的概觀
說明建立可編輯的範本所需的管理員/開發人員工作
說明可編輯範本的技術基礎
本檔案假設您已熟悉建立和編輯範本。 請參閱編寫檔案 建立頁面範本,詳細說明可編輯範本的功能,這些範本作者可公開。
在新專案中設定可編輯的頁面範本時,下列教學課程可能也很有興趣:
開始使用AEM Sites第2部分 — 建立基礎頁面和範本
建立可編輯的範本主要是使用 範本主控台和範本編輯器 由範本作者撰寫。 本節提供此程式的概觀,並隨後說明在技術層級發生的情況。
如需如何在AEM專案中使用可編輯範本的資訊,請參閱 使用Lazybones建立AEM專案.
建立新的可編輯範本時,您可以:
建立 模板的資料夾. 這不是強制性的,而是建議的最佳實務。
提供一系列範本類型的現成可用功能。 您也可以 建立您自己的網站特定範本類型 (如果需要)。
配置新模板的結構、內容策略、初始內容和佈局。
結構
結構可讓您定義範本的元件和內容。
在範本結構中定義的元件無法在產生的頁面上移動,也無法從任何產生的頁面中刪除。
如果您希望頁面作者能夠新增和移除元件,請在範本中新增段落系統。
元件可以再次解除鎖定和鎖定,以便定義初始內容。
如需範本作者如何定義結構的詳細資訊,請參閱 建立頁面範本.
如需結構的技術詳細資訊,請參閱 結構 在此文檔中。
原則
內容策略定義元件的設計屬性。
這些規則適用於範本(以及使用範本建立的頁面)。
如需範本作者如何定義原則的詳細資訊,請參閱 建立頁面範本.
如需原則的技術詳細資訊,請參閱 內容原則 在此文檔中。
初始內容
如需範本作者如何定義結構的詳細資訊,請參閱 建立頁面範本.
如需初始內容的技術詳細資訊,請參閱 初始內容 在此文檔中。
配置
如需範本作者如何定義範本配置的詳細資訊,請參閱 建立頁面範本.
如需範本配置的技術詳細資訊,請參閱 版面 在此文檔中。
啟用範本,然後允許它建立特定內容樹。
如需範本作者如何啟用範本的詳細資訊,請參閱 建立頁面範本.
如需啟用範本的技術詳細資訊,請參閱 為我們啟用和允許範本本檔案中的e
使用它建立內容頁面。
如需頁面作者如何使用範本建立頁面的詳細資訊,請參閱 建立及組織頁面.
有關使用可編輯的模板建立頁面的技術詳細資訊,請參閱 產生的內容頁面 在此文檔中。
切勿輸入需要國際化到模板中的任何資訊。 為內部化目的, 核心元件的本地化功能 。
範本是功能強大的工具,可簡化頁面建立工作流程。 不過,太多範本可能會讓作者不堪重負,使頁面建立變得困惑。 經驗法則是將範本數量控制在100以下。
Adobe不建議有超過1000個範本,因為可能會影響效能。
編輯器用戶端程式庫會假設 cq.shared
命名空間(若不存在JavaScript錯誤) Uncaught TypeError: Cannot read property 'shared' of undefined
會產生。
所有範例內容頁面都包含 cq.shared
,因此任何以其為基礎的內容都會自動包含 cq.shared
. 不過,如果您決定從草稿開始建立自己的內容頁面,而不以範例內容為基礎,則必須確定包含 cq.shared
命名空間。
請參閱 使用用戶端程式庫 以取得更多資訊。
若要組織範本,您可以使用下列資料夾:
全域
網站特定
您為組織範本而建立的網站特定資料夾,是以擁有管理員權限的帳戶所建立。
即使您可以巢狀內嵌資料夾,但當使用者在 範本 控制台顯示為平面結構。
在標準AEM例項中, 全球 模板控制台中已存在資料夾。 如果在當前資料夾中找不到策略和/或模板類型,則此選項將保留預設模板,並充當後援。 您可以將預設範本新增到此資料夾或建立新資料夾(建議)。
最佳實務是建立新資料夾以存放自訂的範本,而不使用全域資料夾。
資料夾必須由使用 admin
權限。
模板類型和策略根據以下優先順序繼承到所有資料夾:
/conf/global
/apps
/libs
將建立所有允許的條目的清單。 如果有任何設定重疊( path
/ label
),則只會向使用者顯示最接近目前資料夾的例項。
若要建立新資料夾,您可以執行下列任一操作:
可以以程式設計方式或使用CRXDE Lite為執行個體建立新資料夾(在/conf下)。
必須使用下列結構:
/conf
<your-folder-name> [sling:Folder]
settings [sling:Folder]
wcm [cq:Page]
templates [cq:Page]
policies [cq:Page]
然後,您可以在資料夾根節點上定義下列屬性:
<your-folder-name> [sling:Folder]
名稱: jcr:title
String
在 新增 標準製作權限(例如 content-authors
)您現在需要指派群組並定義必要的存取權限(ACL),供作者在新資料夾中建立範本。
此 template-authors
群組是需要指派的預設群組。 請參閱下節 ACL和組 以取得詳細資訊。
請參閱 訪問權限管理 有關管理和分配訪問權限的完整詳細資訊。
前往 全域導覽 -> 工具 > 配置瀏覽器.
現有資料夾會列在左側,包括 全球 檔案夾。
按一下建立。
在 建立配置 對話方塊下列欄位需要設定:
按一下 建立
在「設定瀏覽器」中,您可以編輯全域資料夾並啟動 可編輯的範本 選項,但建議不要使用此資料夾建立模板。
請參閱 設定瀏覽器檔案 以取得更多資訊。
建立範本資料夾後(透過CRXDE或使用設定瀏覽器),必須為範本資料夾的適當群組定義ACL,以確保適當的安全性。
的範本資料夾 We.Retail參考實作 可做為範例。
此 template-authors
群組是用來管理範本存取權的群組,隨附AEM的標準,但空白。 必須將使用者新增至專案/網站的群組。
此 template-authors
群組 僅限 適用於必須能夠建立新範本的使用者。
編輯範本功能強大,若未正確編輯,現有範本可能會損毀。 因此,此角色應該重點突出,並僅包括合格的使用者。
下表詳細說明了進行範本編輯所需的權限。
路徑 | 角色/群組 | 權限 |
說明 |
---|---|---|---|
/conf/<your-folder>/settings/wcm/templates |
範本作者 |
讀、寫、復寫 | 在特定站點中建立、讀取、更新、刪除和複製模板的模板作者 /conf 空間 |
匿名Web用戶 | 讀取 | 匿名Web用戶在呈現頁面時必須讀取模板 | |
內容作者 | 複製 | replicateContent作者在啟動頁面時需要啟動頁面的範本 | |
/conf/<your-folder>/settings/wcm/policies |
Template Author |
讀、寫、復寫 | 在特定站點中建立、讀取、更新、刪除和複製模板的模板作者 /conf 空間 |
匿名Web用戶 | 讀取 | 匿名Web用戶在呈現頁面時必須讀取策略 | |
內容作者 | 複製 | 啟用頁面時,內容作者需要啟用頁面範本的原則 | |
/conf/<site>/settings/template-types |
範本作者 | 讀取 | 範本作者會根據其中一種預先定義的範本類型,建立新範本。 |
匿名Web用戶 | 無 | 匿名Web用戶不能訪問模板類型 |
此預設值 template-authors
群組僅涵蓋專案設定,所有 template-authors
成員可以訪問和編寫所有模板。 若要進行更複雜的設定(需要多個範本作者群組來區隔範本的存取權),必須建立更多自訂範本作者群組。 不過,範本作者群組的權限仍會相同。
範本不應再儲存於 /conf/global
但是,對於某些舊版安裝,此位置可能仍有範本。 只有在這類舊情況下,才應: /conf/global
路徑可明確設定。
路徑 | 角色/群組 | 權限 |
說明 |
---|---|---|---|
/conf/global/settings/wcm/templates |
範本作者 | 讀、寫、復寫 | 可在 /conf/global |
匿名Web用戶 | 讀取 | 匿名Web用戶在呈現頁面時必須讀取模板 | |
內容作者 | 複製 | 內容作者在啟動頁面時需要啟動頁面的範本 | |
/conf/global/settings/wcm/policies |
Template Author |
讀、寫、復寫 | 可在 /conf/global |
匿名Web用戶 | 讀取 | 匿名Web用戶在呈現頁面時必須讀取策略 | |
內容作者 | 複製 | 啟用頁面時,內容作者需要啟用頁面範本的原則 | |
/conf/global/settings/wcm/template-types |
範本作者 | 讀取 | 範本作者會根據其中一種預先定義的範本類型,建立新範本 |
匿名Web用戶 | 無 | 匿名Web用戶不能訪問模板類型 |
建立新範本時,您需要指定範本類型:
模板類型有效地為模板提供模板。 建立新模板時,將使用所選模板類型的結構和初始內容建立新模板。
範本類型可讓您定義:
AEM提供一些現成的範本類型選項,例如「HTML5頁面」和「最適化表單頁面」。
範本類型通常由開發人員定義。
現成可用的範本類型儲存在:
/libs/settings/wcm/template-types
您不得變更 /libs
路徑。 這是因為 /libs
會在您下次升級執行個體時覆寫(當您套用Hotfix或Feature Pack時,則會覆寫)。
您的網站特定範本類型應儲存在以下可比位置:
/apps/settings/wcm/template-types
自訂範本類型的定義應儲存在使用者定義的資料夾中(建議),或儲存在 global
. 例如:
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/template-types
/conf/<my-folder>/settings/wcm/template-types
/conf/global/settings/wcm/template-types
範本類型必須遵循正確的資料夾結構(即 /settings/wcm/...
),否則將找不到範本類型。
此 裝置群組 用於可編輯的範本(設定為屬性的相對路徑) cq:deviceGroups
)定義哪些行動裝置可作為 配置模式 的頁面編寫功能。 此值可設為兩個位置:
建立新的可編輯範本時,值會從範本類型複製到個別範本。 如果未在類型上設定值,則可在範本上設定。 建立範本後,就不會繼承類型到範本。
的值 cq:deviceGroups
必須設定為相對路徑,例如 mobile/groups/responsive
而非絕對路徑,例如 /etc/mobile/groups/responsive
.
使用 靜態範本,的值 cq:deviceGroups
可設定於網站的根目錄。
使用可編輯的範本時,此值現在會儲存在範本層級,而頁面根層級不支援此值。
如果已建立可作為其他模板基礎的模板,則可以將此模板作為模板類型複製。
templates
節點 template-types
節點 範本資料夾.templates
節點 範本資料夾.template-types
節點,全部刪除 cq:template
和 cq:templateType
jcr:content
屬性。您也可以使用可編輯範本範例來開發自己的範本類型,此範本可在GitHub上取得。
GITHUB上的程式碼
您可以在GitHub上找到此頁面的程式碼
可編輯範本的定義會儲存 用戶定義的資料夾 (建議)或 global
. 例如:
/conf/<my-folder>/settings/wcm/templates
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/templates
/conf/global/settings/wcm/templates
模板的根節點類型為 cq:Template
骨架結構為:
<template-name>
initial
jcr:content
root
<component>
...
<component>
jcr:content
@property status
policies
jcr:content
root
@property cq:policy
<component>
@property cq:policy
...
<component>
@property cq:policy
structure
jcr:content
root
<component>
...
<component>
cq:responsive
breakpoints
thumbnail.png
主要元素為:
<template-name>
jcr:content
thumbnail.png
此節點包含模板的屬性:
名稱: jcr:title
名稱: status
String
draft
, enabled
或 disabled
定義結果頁面的結構:
已與初始內容合併( /initial
)。
對結構所做的變更將反映在使用範本建立的任何頁面中。
此 root
( structure/jcr:content/root
)節點會定義產生頁面中可用的元件清單。
editable
屬性設為 true
.initial
分支。此 cq:responsive
節點保留回應式配置的定義。
定義新頁面建立時將擁有的初始內容:
jcr:content
會複製到任何新頁面的節點。/structure
)。root
節點包含元件清單,以定義產生頁面中可用的項目。當 編輯可定義佈局的模板,此用途 標準回應式版面 也可以 已配置.
內容(或設計)原則會定義元件的設計屬性。 例如,可用元件或最小/最大尺寸。 這些規則適用於範本(以及使用範本建立的頁面)。 可在範本編輯器中建立並選取內容原則。
屬性 cq:policy
,在 root
節點
/conf/<your-folder>/settings/wcm/templates/<your-template>/policies/jcr:content/root
提供頁面段落系統的內容原則的相對參考。
屬性 cq:policy
,位於 root
,提供個別元件之原則的連結。
實際策略定義儲存在:
/conf/<your-folder>/settings/wcm/policies/wcm/foundation/components
策略定義的路徑取決於元件的路徑。 cq:policy
保留對配置本身的相對引用。
從可編輯的範本建立的頁面在頁面編輯器中不提供設計模式。
此 policies
可編輯範本的樹狀結構與下方靜態範本的設計模式配置相同:
/etc/designs/<my-site>/jcr:content/<component-name>
已為每個頁面元件定義靜態範本的設計模式設定。
頁面原則可讓您定義 內容原則 針對頁面(main parsys),位於範本或產生的頁面中。
啟用範本
必須先啟用範本,才能使用範本:
啟用範本 從 範本 控制台。
在 jcr:content
節點。
例如,在:
/conf/<your-folder>/settings/wcm/templates/<your-template>/jcr:content
定義屬性:
enabled
允許的範本
在 頁面屬性 的相應頁或根頁。
設定屬性:
cq:allowedTemplates
在 jcr:content
所需分支的節點。
例如,值為:
/conf/<your-folder>/settings/wcm/templates/.*;
從可編輯的範本建立的頁面:
建立時使用合併自的子樹 structure
和 initial
在範本中
在模板和模板類型中保留對資訊的引用。 這是透過 jcr:content
節點(具有屬性):
cq:template
提供對實際模板的動態參考;可讓範本的變更反映在實際頁面上。
cq:templateType
提供範本類型的參考。
上圖顯示範本、內容和元件之間的關聯:
控制器 — /content/<my-site>/<my-page>
參照模板的生成頁面。 內容可控制整個程式。 根據定義,它訪問相應的模板和元件。
設定 - /conf/<my-folder>/settings/wcm/templates/<my-template>
此 範本和相關內容原則 定義頁面設定。
Model - OSGi套件組合
此 OSGI套件組合 實作功能。
檢視 - /apps/<my-site>/components
在製作和發佈環境中,內容由 元件.
呈現頁面時:
範本:
cq:template
其屬性 jcr:content
會參考節點來存取與該頁面對應的範本。元件:
頁面元件將合併 structure/jcr:content
模板的樹 jcr:content
頁面樹狀結構。
頁面元件將僅允許作者編輯已標示為可編輯的範本結構節點(以及任何子項)。
在頁面上呈現元件時,該元件的相對路徑將取自 jcr:content
節點;在 policies/jcr:content
然後會搜尋範本的節點。
cq:policy
此節點的屬性指向實際內容策略(即它包含該元件的設計配置)。