範本 templates
範本在AEM中的不同時間點使用:
-
當您建立頁面時,請選取範本。 此範本用作新頁面的基礎。 範本定義了頁面的結構、任何初始內容,以及可用的元件 (設計屬性)。
-
當您建立內容片段時,您也可以選取範本。 此範本定義結構、初始元素和變數。
以下範本將詳細說明:
範本 — 頁面 templates-pages
AEM現在提供兩種基本型別的範本以用於建立頁面:
可編輯的範本 editable-templates
可編輯的範本現在被認為是使用AEM進行開發的最佳實務。
可編輯範本的優點:
靜態範本 static-templates
靜態範本:
範本可用性 template-availability
-
僅
cq:allowedTemplates
屬性 -
僅於網站根目錄上
/content/we-retail/jcr:content
allowedPaths
、allowedParents
和allowedChildren
也可以放在範本上,以定義更複雜的規則。 不過,如果可能的話,如果需要進一步限制允許的範本,在網站的子區段上定義其他cq:allowedTemplates
屬性會更簡單 許多。cq:allowedTemplates
屬性可由作者在 頁面屬性 的 進階 索引標籤中更新。 無法使用(標準) UI更新其他範本屬性,因此需要開發人員維護規則和每次變更的程式碼部署。在網站管理員介面中建立頁面時,可用範本清單會根據新頁面的位置及每個範本中指定的版位限制而定。
下列屬性決定範本T
是否用於要放置為頁面P
子項的新頁面。 這些屬性都是多值字串,其中包含零個或多個用於和路徑比對的規則運算式:
-
P
的jcr:content
子節點或P
的上階的cq:allowedTemplates
屬性。 -
T
的allowedPaths
屬性。 -
T
的allowedParents
屬性。 -
P
之範本的allowedChildren
屬性。
評估的運作方式如下:
-
以
P
開頭的頁面階層遞增時,找到的第一個非空白cq:allowedTemplates
屬性與T
的路徑相符。 如果沒有任何相符的值,則會拒絕T
。 -
如果
T
具有非空白的allowedPaths
屬性,但沒有符合P
路徑的值,則會拒絕T
。 -
如果上述兩個屬性都是空白或不存在,則會拒絕
T
,除非它與P
屬於相同的應用程式。 當T
路徑的第二層級名稱與P
路徑的第二層級名稱相同時,T
才屬於與P
相同的應用程式。 例如,範本/apps/geometrixx/templates/foo
與頁面/content/geometrixx
屬於相同的應用程式。 -
如果
T
具有非空白的allowedParents
屬性,但沒有符合P
路徑的值,則會拒絕T
。 -
如果
P
的範本有非空白的allowedChildren
屬性,但沒有符合T
路徑的值,則會拒絕T
。 -
在所有其他情況下,都允許
T
。
下圖說明範本評估程式:
限制子頁面中使用的範本 limiting-templates-used-in-child-pages
若要限制哪些範本可用於在指定頁面下建立子頁面,請使用頁面jcr:content
節點的cq:allowedTemplates
屬性,指定允許做為子頁面的範本清單。 清單中的每個值都必須是允許之子頁面的範本的絕對路徑,例如/apps/geometrixx/templates/contentpage
。
您可以在範本的jcr:content
節點上使用cq:allowedTemplates
屬性,將此設定套用至使用此範本的所有新建立頁面。
如果您想要新增更多限制,例如關於範本階層,您可以在範本上使用allowedParents/allowedChildren
屬性。 然後,您可以明確指定從範本T建立的頁面必須是從範本T建立的頁面的父項/子項。
範本 — 內容片段 templates-content-fragments
請參閱內容片段範本。