範本

範本會用於AEM中的各個時間點:

以下範本將詳細說明:

範本 — 頁面

AEM現在提供兩種建立頁面的基本範本類型:

可編輯的範本

使用AEM開發時,可編輯的範本現在被視為最佳作法。

可編輯範本的優點:

  • 可由作者建立🔗edited

  • 已導入,可讓您為使用範本建立的任何頁面定義下列項目:

    • 結構
    • 初始內容
    • 內容原則
  • 建立新頁面後,頁面與範本之間會維持動態連線;這表示使用該範本建立的任何頁面上都會反映對範本結構的變更(不會反映初始內容的變更)。

  • 使用內容原則(從範本編輯器編輯)來保留設計屬性(不在頁面編輯器內使用設計模式)。

  • 儲存在/conf

  • 如需詳細資訊,請參閱可編輯的範本

注意

AEM社群文章可供說明如何使用可編輯的範本開發Experience Manager網站,請參閱使用可編輯的範本建立Adobe Experience Manager 6.4網站

靜態範本

靜態範本:

  • 必須由開發人員定義和設定。
  • 這是AEM的原始範本系統,可用於許多版本。
  • 靜態範本是節點的階層,其結構與要建立的頁面相同,但沒有任何實際內容。
  • 系統會複製以建立新頁面,之後不會有動態連線。
  • 使用設計模式來保存設計屬性。
  • 儲存在/apps
  • 如需詳細資訊,請參閱靜態範本
注意

自AEM 6.4起,使用靜態範本不被視為最佳實務。 請改用可編輯的範本。

AEM Modernizationtools可協助您從靜態範本移轉至可編輯的範本。

範本可用性

注意

AEM提供多個屬性,以控制​Sites​下允許的範本。 但是,結合這些規則可能會產生非常複雜的規則,且難以追蹤和管理。

因此,Adobe建議您透過定義:

  • cq:allowedTemplates屬性

  • 僅位於站點根

如需範例,請參閱We.Retail:/content/we-retail/jcr:content

屬性allowedPathsallowedParentsallowedChildren也可放置在範本上,以定義更複雜的規則。 不過,如果需要進一步限制允許的範本,在網站的子區段上進一步定義cq:allowedTemplates屬性會更簡單。**

另一個好處是,cq:allowedTemplates屬性可由作者在​Page Properties​的​Advanced​標籤中更新。 無法使用(標準)UI更新其他範本屬性,因此需要開發人員來維護每次變更的規則和程式碼部署。

在網站管理員介面中建立新頁面時,可用範本清單會根據新頁面的位置,以及每個範本中指定的位置限制而定。

以下屬性確定是否允許將模板T用於將新頁面作為頁面P的子頁面。 這些屬性中的每個都是多值字串,包含零個或多個用於與路徑比對的規則運算式:

  • Pjcr:content子節點或P的祖先的cq:allowedTemplates屬性。

  • TallowedPaths屬性。

  • TallowedParents屬性。

  • 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

下圖描述了模板評估流程:

chlimage_1-176

限制子頁中使用的模板

要限制哪些模板可用於在指定頁面下建立子頁面,請使用頁面jcr:content節點的cq:allowedTemplates屬性指定允許作為子頁面的模板清單。 清單中的每個值必須是允許的子頁面(例如/apps/geometrixx/templates/contentpage)的模板的絕對路徑。

您可以使用範本jcr:content節點上的cq:allowedTemplates屬性,將此設定套用至使用此範本的所有新建立頁面。

如果要添加更多約束(例如關於模板層次結構),可以在模板上使用allowedParents/allowedChildren屬性。 然後,您可以明確指定從範本T建立的頁面必須是從範本T建立的頁面的父/子頁面。

範本 — 內容片段

如需完整資訊,請參閱內容片段範本

本頁內容