テンプレート 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
詳しくは、コンテンツフラグメントテンプレートを参照してください。