テンプレート

テンプレートは、AEM の様々な場面で使用されます。

ここでは、次のテンプレートについて詳しく説明します。

テンプレート - ページ

現在、AEM には、ページ作成用として 2 つの基本的なタイプのテンプレートが用意されています。

メモ

新しいページを作成するときにテンプレートを使用する際、ページ編集者にとって見た目的な違いはなく、またどちらのタイプのテンプレートを使用しているかについての表示もありません。

編集可能なテンプレート

編集可能なテンプレートは、AEMを使用した開発のベストプラクティスと見なされるようになりました。

編集可能テンプレートのメリットは次のとおりです。

  • 作成者が作成および編集できます。

  • テンプレートを使用して作成される任意のページで、以下の項目を定義できます。

    • 構造
    • 初期コンテンツ
    • コンテンツポリシー
  • 新しいページの作成後も、そのページとテンプレートの間に動的接続が維持されます。つまり、テンプレートの構造に対する変更は、そのテンプレートを使用して作成されるすべてのページに反映されます(初期コンテンツに対する変更は反映されません)。

  • デザインプロパティを保持するには、テンプレートエディターから編集できるコンテンツポリシーを使用します(ページエディター内のデザインモードは使用しません)。

  • /confの下に格納されます。

  • 詳しくは、編集可能テンプレートを参照してください。

メモ

編集可能なテンプレートを使用してExperience Managerサイトを開発する方法については、 AEMコミュニティの記事を参照してください。 編集可能なテンプレートを使用したAdobe Experience Manager 6.5 Webサイトの作成を参照してください。

静的テンプレート

静的テンプレート:

  • 開発者が定義および設定する必要があります。
  • これはAEMの元のテンプレートシステムで、多くのバージョンで使用できました。
  • 作成されるページと同じ構造のノード階層を含んでいますが、実際のコンテンツはありません。
  • 新しいページはテンプレートをコピーして作成されるので、動的接続は存在しません。
  • デザインプロパティを保持するには、デザインモードを使用します。
  • /appsの下に格納されます。
  • 詳しくは、静的テンプレートを参照してください。
メモ

AEM 6.5以降では、静的テンプレートの使用はベストプラクティスと見なされません。 その代わりに編集可能テンプレートを使用してください。

AEM Modernizationtoolsは、静 的テンプレートから編集可能なテンプレートへの移行に役立ちます。

使用可能なテンプレート

注意

AEM は、複数のプロパティをオファーして、Sites で許可されるテンプレートを制御します。ただし、組み合わせることで非常に複雑なルールになり、追跡や管理が困難になる可能性があります。

したがって、アドビでは、次の項目を定義して、単純に開始することをお勧めします。

  • プロパティは cq:allowedTemplates のみ

  • サイトのルートにのみ

例については、 We.Retailを参照してください。/content/we-retail/jcr:content

プロパティ allowedPathsallowedParentsallowedChildren をテンプレートに配置して、より高度なルールを定義することもできます。ただし、可能な場合、許可されるテンプレートをさらに制限する必要がある場合は、サイトのサブセクションでさらに cq:allowedTemplates プロパティを定義する方が​はるかに​簡単です。

また、ページプロパティ​の「詳細」タブで、作成者が cq:allowedTemplates プロパティを更新できるという利点もあります。その他のテンプレートプロパティは、(標準)UI を使用して更新することはできないので、変更するたびに、ルールとコードのデプロイメントを管理する開発者が必要になります。

サイト管理インターフェイスで新しいページを作成する場合、使用可能なテンプレートのリストは、新しいページの場所と、各テンプレートで指定されている配置制限によって異なります。

次のプロパティは、新しいページをページ P の子として配置する場合に、テンプレート T を使用できるかどうかを決定します。これらの各プロパティは、0 個以上の正規表現を保持する複数値の文字列で、パスの照合に使用されます。

  • jcr:content サブノードの P または P の上位ページの cq:allowedTemplates プロパティ。

  • TallowedPaths プロパティ。

  • TallowedParents プロパティ。

  • 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 は許可されます。

以下の図は、テンプレートの評価プロセスを示しています。

chlimage_1-176

子ページで使用するテンプレートの制限

特定のページの下に子ページを作成するために使用できるテンプレートを制限するには、ページの jcr:content ノードの cq:allowedTemplates プロパティを使用して、子ページとして許可するテンプレートのリストを指定します。例えば、/apps/geometrixx/templates/contentpage リストの各値は、許可されている子ページのテンプレートへの絶対パスである必要があります。

テンプレートの jcr:content ノードの cq:allowedTemplates プロパティを使用すると、このテンプレートを使用するすべての新規作成ページにこの設定を適用できます。

テンプレート階層に関する制約などをさらに追加する場合は、テンプレートの allowedParents/allowedChildren プロパティを使用できます。その後、テンプレート T から作成されたページが、テンプレート T から作成されたページと親子である必要があることを明示的に指定できます。

テンプレート - コンテンツフラグメント

詳しくは、コンテンツフラグメントテンプレートを参照してください。

このページ