AEM 設定は、AEM の設定を管理し、ワークスペースとして機能します。
設定には、2 つの異なる観点があります。
まとめ:管理者の観点からの設定とは、AEM で設定を管理するワークスペースの作成方法を指します。一方、デベロッパーは、AEM がリポジトリー内でこれらの設定を使用および管理する方法を理解する必要があります。
設定は、上記の観点に関係なく、AEM で 2 つの主な目的を果たします。
AEM 管理者と作成者は、設定をワークスペースと見なすことができます。ワークスペースは、機能にアクセス権を実装することで、組織の目的のために設定グループや関連するコンテンツをまとめるために使用できます。
設定は、AEM 内の多くの異なる機能に対して作成できます。
例えば、管理者は編集可能なテンプレートの 2 つの設定を作成できます。
WKND-General の設定を使用して一般的なページテンプレートを作成し、WKND-Magazine の設定で雑誌専用のテンプレートを作成できます。
WKND-General を WKND サイトのすべてのコンテンツに関連付けることができますが、WKND-Magazine は、雑誌サイトにのみ関連付けられます。
これににより、次のことができます。
編集可能なテンプレートだけでなく、クラウド設定、ContextHub セグメント、コンテンツフラグメントモデルに対しても同様の設定が可能です。
設定ブラウザーを使用すると、管理者は AEM 設定に対するアクセス権を簡単に作成、管理、設定できます。
ユーザーに admin
権限がある場合にのみ、設定ブラウザーを使用して設定を作成できます。アクセス権を設定に割り当てたり、設定を変更したりするには、admin
権限も必要です。
設定ブラウザーを使用して AEM で新しい設定を作成する方法は、非常に簡単です。
AEM as a Cloud Service にログインし、メインメニューでツール/一般/設定ブラウザーを選択します。
「作成」をタップまたはクリックします。
設定にタイトルと名前を指定します。
許可する設定のタイプを確認します。
「作成」をタップまたはクリックします。
設定は入れ子にできます。
設定をワークスペースと考える場合、これらの設定にアクセス権を設定して、それらのワークスペースにアクセスできるユーザーとアクセスできないユーザーを指定することができます。
設定の作成後は、機能の選択を解除することはできません。
デベロッパーは、AEM as a Cloud Service と設定との連携、および設定の処理方法を知ることが重要です。
管理者とユーザーは、設定を、異なる設定やコンテンツを管理するためのワークスペースと考るかもしれませんが、AEM では設定とコンテンツはリポジトリー内で別々に保存および管理されることを理解しておくことが重要です。
/content
はすべてのコンテンツのホームページです。/conf
はすべての設定のホームです。コンテンツは cq:conf
プロパティを介して関連する設定を参照します。AEM は、コンテンツとそのコンテキスト依存の cq:conf
プロパティに基づいて検索を実行し、適切な設定を見つけます。
この例では、DAM 設定に関心のあるアプリケーションコードがあるとします。
Conf conf = resource.adaptTo(Conf.class);
ValueMap imageServerSettings = conf.getItem("dam/imageserver");
String bgkcolor = imageServerSettings.get("bgkcolor", "FFFFFF");
すべての設定参照の開始点はコンテンツリソースで、通常は /content
の下にあります。これは、ページ、ページ内のコンポーネント、アセット、または DAM フォルダーの場合がありますが、この状況で適用される適切な設定を探している実際のコンテンツです。
Conf
オブジェクトを用意したら、特定の設定項目を取得できます。この場合は dam/imageserver
で、imageserver
に関連する設定の集まりです。getItem
を呼び出すと ValueMap
が返されます。次に、bgkcolor
文字列プロパティを読み取り、プロパティ(または設定項目全体)が存在しない場合に備えて、デフォルト値の「FFFFFF」を指定します。
次に、対応する JCR コンテンツを見てみましょう。
/content/dam/wknd
+ jcr:content
- cq:conf = "/conf/wknd"
+ image.png [dam:Asset]
/conf/wkns
+ settings
+ dam
+ imageserver [cq:Page]
+ jcr:content
- bgkcolor = "FF0000"
この例では、WKND 固有の DAM フォルダーと、対応する設定があると仮定します。このフォルダー /content/dam/wknd
から始めると、サブツリーに適用する設定を参照する cq:conf
という名前の文字列プロパティがあることがわかります。このプロパティは通常、アセットフォルダーまたはアセットページの jcr:content
に設定されます。これらの conf
リンクは明示的なので、CRXDE 内のコンテンツを見るだけで簡単にリンク先を追うことができます。
/conf
の中に入り、参照をたどると /conf/wknd
ノードがあるのがわかります。これは設定です。この検索は、アプリケーションコードに対して完全に透過的であることに注意してください。この例のコードは、専用の参照を持たないので、Conf
オブジェクトの背後に隠れています。どの設定が適用されるかは、JCR コンテンツを介して完全に制御されます。
この設定には、実際の項目を含む固定名の settings
ノードが含まれています。これには、このケースで必要な dam/imageserver
が含まれます。このような項目は「設定ドキュメント」と考えることができ、通常は、実際のコンテンツを保持する jcr:content
を含む cq:Page
で表されます。
最後に、コード例に必要なプロパティ bgkcolor
を見てみます。getItem
から返される ValueMap
は、ページの jcr:content
ノードに基づいています。
上記の基本的な例は、1 つの設定を示しています。ただし、デフォルトのグローバル設定、ブランドごとに異なる設定、サブプロジェクトごとに特定の設定など、様々な設定が必要な場合が多くあります。
これをサポートするために、AEM での設定の参照には継承とフォールバックのメカニズムが次の優先順で用意されています。
/conf/<siteconfig>/<parentconfig>/<myconfig>
cq:conf
から /content
のどこかで参照された特定の設定/conf/<siteconfig>/<parentconfig>
/conf/<siteconfig>
/conf/global
admin
の役割によって設定/apps
/libs
AEM の設定は、Sling コンテキスト対応設定に基づいています。Sling バンドルには、コンテキスト対応設定の取得に使用できるサービス API が用意されています。コンテキスト対応設定とは、前の例で説明したように、コンテンツリソースまたはリソースツリーに関連する設定です。
コンテキスト対応設定、例、使用方法の詳細については、Sling のドキュメントを参照してください。
デバッグおよびテストの目的で、https://<host>:<port>/system/console/conf
には ConfMgr Web コンソールがあり、特定のパス/項目の設定を表示することができます。
以下を提供するだけです。
「解決」をクリックして、解決される設定を確認し、それらの設定を解決するコード例を受け取ります。
デバッグおよびテストの目的で、https://<host>:<port>/system/console/slingcaconfig
にコンテキスト対応設定の Web コンソールがあり、リポジトリー内のコンテキスト対応設定にクエリを実行し、そのプロパティを表示できます。
以下を提供するだけです。
「解決」をクリックして、選択した設定に関連付けられたコンテキストパスとプロパティを取得します。