テンプレート templates
テンプレートは、AEMの様々なポイントで使用されます。
-
条件 テンプレートを選択する必要があるページの作成;これは、新しいページのベースとして使用されます。 テンプレートは、結果ページの構造、初期コンテンツ、および コンポーネント 使用可能(デザインプロパティ)
-
コンテンツフラグメントの作成時にテンプレートを選択します。このテンプレートは、構造、初期要素およびバリエーションを定義します。
ここでは、次のテンプレートについて詳しく説明します。
テンプレート — ページ templates-pages
AEMには、ページを作成するための 2 つの基本的なタイプのテンプレートが用意されています。
編集可能なテンプレート editable-templates
編集可能テンプレートは、AEMを使用した開発のベストプラクティスと考えられるようになりました。
編集可能テンプレートの利点は次のとおりです。
-
テンプレートで作成されたすべてのページで以下を定義できるようにが導入されました。
- 構造
- 初期コンテンツ
- コンテンツポリシー
-
新しいページの作成後も、そのページとテンプレートの間に動的接続が維持されます。つまり、テンプレートの構造に対する変更は、そのテンプレートを使用して作成されるすべてのページに反映されます(初期コンテンツに対する変更は反映されません)。
-
デザインプロパティを保持するには、テンプレートエディターから編集できるコンテンツポリシーを使用します(ページエディター内のデザインモードは使用しません)。
-
/confに保存されます。 -
詳しくは、編集可能テンプレートを参照してください。
静的テンプレート static-templates
静的テンプレート:
使用可能なテンプレート template-availability
-
プロパティは
cq:allowedTemplatesのみ -
サイトのルートにのみ
/content/we-retail/jcr:content を参照してください。allowedPaths、allowedParents、allowedChildren をテンプレートに配置して、より高度なルールを定義することもできます。ただし、可能な場合、許可されるテンプレートをさらに制限する必要がある場合は、サイトのサブセクションでさらに cq:allowedTemplates プロパティを定義する方が はるかに 簡単です。cq:allowedTemplates プロパティを更新できるという利点もあります。その他のテンプレートプロパティは、(標準)UI を使用して更新することはできないので、変更するたびに、ルールとコードのデプロイメントを管理する開発者が必要になります。サイト管理インターフェイスで新しいページを作成する場合、使用可能なテンプレートのリストは、新しいページの場所と、各テンプレートで指定されている配置制限によって異なります。
次のプロパティは、新しいページをページ P の子として配置する場合に、テンプレート T を使用できるかどうかを決定します。これらの各プロパティは、0 個以上の正規表現を保持する複数値の文字列で、パスの照合に使用されます。
-
jcr:contentサブノードのPまたはPの上位ページのcq:allowedTemplatesプロパティ。 -
TのallowedPathsプロパティ。 -
TのallowedParentsプロパティ。 -
PのテンプレートのallowedChildrenプロパティ。
評価は次のように行われます。
-
Pで始まるページ階層を昇順にしているときに見つかった、最初の空でないcq:allowedTemplatesプロパティは、Tのパスと一致します。一致する値がない場合、Tは拒否されます。 -
Tに空でないallowedPathsプロパティがあるものの、Pのパスと一致する値がない場合、Tは拒否されます。 -
上記のプロパティの両方が空または存在しない場合、
Pと同じアプリケーションに属さない限り、Tは拒否されます。Tは、Tのパスの 2 番目のレベルの名前がPのパスの 2 番目のレベルの名前と同じである場合に限り、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
詳しくは、 コンテンツフラグメントテンプレート を参照してください。