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