テンプレートは、AEMの様々なポイントで使用されます。
条件 テンプレートを選択する必要があるページの作成;これは、新しいページのベースとして使用されます。 テンプレートは、結果ページの構造、初期コンテンツ、および コンポーネント 使用可能(デザインプロパティ)
コンテンツフラグメントの作成時にテンプレートを選択します。このテンプレートは、構造、初期要素およびバリエーションを定義します。
ここでは、次のテンプレートについて詳しく説明します。
AEMには、ページを作成するための 2 つの基本的なタイプのテンプレートが用意されています。
新しいページを作成するときにテンプレートを使用する際、ページ編集者にとって見た目的な違いはなく、またどちらのタイプのテンプレートを使用しているかについての表示もありません。
編集可能テンプレートは、AEMを使用した開発のベストプラクティスと考えられるようになりました。
編集可能テンプレートの利点は次のとおりです。
テンプレートで作成されたすべてのページで以下を定義できるようにが導入されました。
新しいページの作成後も、そのページとテンプレートの間に動的接続が維持されます。つまり、テンプレートの構造に対する変更は、そのテンプレートを使用して作成されるすべてのページに反映されます(初期コンテンツに対する変更は反映されません)。
デザインプロパティを保持するには、テンプレートエディターから編集できるコンテンツポリシーを使用します(ページエディター内のデザインモードは使用しません)。
/conf
に保存されます。
詳しくは、編集可能テンプレートを参照してください。
AEM コミュニティの記事の編集可能テンプレートを使用した Adobe Experience Manager 6.4 の web サイトの作成では、編集可能テンプレートを使用して Experience Manager サイトを開発する方法を説明しています。
静的テンプレート:
/apps
に保存されますAEM 6.4 以降では、静的テンプレートの使用はベストプラクティスとは見なされていません。その代わりに編集可能テンプレートを使用してください。
AEM 最新化ツールは、静的テンプレートから編集可能テンプレートへの移行に役立ちます。
AEM は、複数のプロパティをオファーして、Sites で許可されるテンプレートを制御します。ただし、組み合わせることで非常に複雑なルールになり、追跡や管理が困難になる可能性があります。
したがって、アドビでは、次の項目を定義して、単純に開始することをお勧めします。
プロパティは cq:allowedTemplates
のみ
サイトのルートにのみ
例えば、We.Retail /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
は許可されます。
以下の図は、テンプレートの評価プロセスを示しています。
特定のページの下に子ページを作成するために使用できるテンプレートを制限するには、ページの jcr:content
ノードの cq:allowedTemplates
プロパティを使用して、子ページとして許可するテンプレートのリストを指定します。例えば、/apps/geometrixx/templates/contentpage
リストの各値は、許可されている子ページのテンプレートへの絶対パスである必要があります。
テンプレートの jcr:content
ノードの cq:allowedTemplates
プロパティを使用すると、このテンプレートを使用するすべての新規作成ページにこの設定を適用できます。
テンプレート階層に関する制約などをさらに追加する場合は、テンプレートの allowedParents/allowedChildren
プロパティを使用できます。その後、テンプレート T から作成されたページが、テンプレート T から作成されたページと親子である必要があることを明示的に指定できます。
詳しくは、 コンテンツフラグメントテンプレート を参照してください。