コンテンツフラグメントモデル content-fragment-models
AEM のコンテンツフラグメントモデルは、コンテンツフラグメントのコンテンツ構造を定義するもので、ヘッドレスコンテンツの基盤となります。
コンテンツフラグメントモデルを使用するには、以下のように行います。
- お使いのインスタンスでコンテンツフラグメント機能を有効にする
- コンテンツフラグメントモデルを作成および設定
- コンテンツフラグメントの作成時に使用するために、コンテンツフラグメントモデルを有効にする
- ポリシー の設定による必要なアセットフォルダーに対するコンテンツフラグメントモデルの許可
コンテンツフラグメントモデルの作成 creating-a-content-fragment-model
-
ツール/アセット に移動し、コンテンツフラグメントモデル を開きます。
-
目的の設定に適したフォルダーに移動します。
-
「作成」を使用してウィザードを開きます。
note caution CAUTION コンテンツフラグメントモデルの使用が有効になっていない場合、「作成」オプションは使用できません。 -
「モデルタイトル」を指定します。また、「タグ」、「説明」を追加し、必要に応じて「モデルを有効化」を選択してモデルを有効にします。
-
「作成」を使用して、空のモデルを保存します。アクションの成功を示すメッセージが表示されたら、「開く」を選択して、モデルを直ちに編集するか、「完了」を選択してコンソールに戻ります。
コンテンツフラグメントモデルの定義 defining-your-content-fragment-model
コンテンツフラグメントモデルは、データタイプ の選択を使用して、結果として得られるコンテンツフラグメントの構造を効果的に定義します。モデルエディターを使用して、データ型のインスタンスを追加し、それらを設定して必須フィールドを作成できます。
-
ツール/アセット に移動し、コンテンツフラグメントモデル を開きます。
-
コンテンツフラグメントモデルが含まれているフォルダーに移動します。
-
必要なモデルを 編集 用に開きます。クイック操作を使用するか、モデルを選択してツールバーから操作を選択します。
モデルを開くと、モデルエディターに以下の情報が表示されます。
- 左:フィールドが既に定義されています
- 右:フィールドの作成に使用できる データタイプ(およびフィールドの作成後に使用する プロパティ)
note note NOTE あるフィールドを 必須 として指定した場合、左側のウィンドウに表示される ラベル にアスタリスク(*)が付きます。 -
フィールドを追加するには
-
必要なデータタイプをフィールドの必要な場所にドラッグします。
-
フィールドがモデルに追加されると、その特定のデータタイプに対して定義できる プロパティ が右側のパネルに表示されます。ここで、そのフィールドに必要な項目を定義することができます。
-
多くのプロパティは自明です。詳しくは「プロパティ」を参照してください。
-
フィールドラベル を入力すると、プロパティ名 が空欄の場合は自動入力され、後で手動で更新できます。
note caution CAUTION データタイプの プロパティ名 プロパティを手動で更新する場合、名前には、A~Z、a~z、0~9 および特殊文字のアンダースコア「_」のみが使用できます。 以前のバージョンの AEM で作成されたモデルに不正な文字が含まれている場合は、それらの文字を削除または更新します。
次に例を示します。
-
-
-
フィールドを削除するには
必須フィールドを選択し、ごみ箱アイコンをクリックします。このアクションの確認が求められます。
-
すべての必須フィールドを追加し、必要に応じて関連するプロパティを定義します。例:
-
「保存」を選択して、定義を保持します。
データタイプ data-types
モデルの定義には、次のデータタイプを選択できます。
-
1 行のテキスト
- 1 行のテキストのフィールドを 1 つ以上追加(最大長は定義可能)
-
複数行テキスト
- リッチテキスト、プレーンテキストまたはマークダウンのテキスト領域
-
数値
- 1 つ以上の数値フィールドを追加
-
ブール型
- ブール型チェックボックスを追加
-
日時
- 日付や時刻を追加
-
列挙
- チェックボックス、ラジオボタンまたはドロップダウンフィールドのセットを追加
-
タグ
- フラグメント作成者がタグの領域にアクセスして選択できるようにする
-
コンテンツ参照
- 任意の種類の他のコンテンツを参照し、ネストされたコンテンツの作成に使用可能
- 画像が参照されている場合は、サムネールを表示するように選択可能
-
フラグメント参照
-
他のコンテンツフラグメントの参照を、ネストされたコンテンツの作成に使用可能
-
このデータタイプは、フラグメント作成者が次の操作を行えるように設定可能です。
- 参照先フラグメントの直接編集
- 適切なモデルに基づいたコンテンツフラグメントの作成
-
-
JSON オブジェクト
-
コンテンツフラグメントの作成者がフラグメントの対応する要素に JSON 構文を入力可能
- 別のサービスからコピー&ペーストした JSON を AEM に直接保存できるようにする
- JSON が渡され GraphQL で JSON として出力される
- コンテンツフラグメントエディターに JSON 構文のハイライト表示機能、オートコンプリート、エラーのハイライト表示が組み込まれている
-
-
タブプレースホルダー
-
コンテンツフラグメントコンテンツの編集時に使用するタブを導入可能これは、モデルエディターで区切りとして表示され、コンテンツデータタイプのリストをセクションに分ける働きをします。各インスタンスは、新しいタブの開始を表します。
フラグメントエディターでは、各インスタンスがタブとして表示されます。note note NOTE このデータタイプは書式設定にのみ使用され、AEM GraphQL スキーマでは無視されます。
-
プロパティ properties
多くのプロパティは自明です。プロパティによっては次に示す追加の詳細情報があります。
-
プロパティ名
データタイプのこのプロパティを手動で更新する場合、名前には、A~Z、a~z、0~9 および特殊文字としてアンダースコア「_」のみを 使用する 必要があります。
note caution CAUTION 以前のバージョンの AEM で作成されたモデルに不正な文字が含まれている場合は、それらの文字を削除または更新します。 -
レンダリング時の名前
フラグメント内のフィールドを実現/レンダリングするための様々なオプション。多くの場合、これにより、作成者にフィールドの 1 つのインスタンスが表示されるか、作成者が複数のインスタンスを作成できるかを定義できます。 -
フィールドラベル
フィールドラベル を入力すると、プロパティ名 を自動生成し、必要に応じて手動で更新できます。 -
検証
基本検証は、必須 プロパティなどのメカニズムで使用できます。一部のデータ型には、追加の検証フィールドがあります。詳しくは、「検証」を参照してください。 -
データタイプが 複数行テキスト の場合、「デフォルトの種類」を次のいずれかとして定義できます。
- リッチテキスト
- Markdown
- プレーンテキスト
指定しなかった場合は、デフォルト値の リッチテキスト がこのフィールドで使用されます。
コンテンツフラグメントモデルで デフォルトのタイプ を変更した場合、その影響が既存の関連コンテンツフラグメントに及ぶのは、そのフラグメントがエディターで開かれて保存された後です。
-
一意:
(特定のフィールドの)コンテンツは、現在のモデルから作成されたすべてのコンテンツフラグメントで一意である必要があります。これにより、同じモデルの別のフラグメントに既に追加されているコンテンツをコンテンツ作成者が繰り返し作成できないようになります。
例えば、コンテンツフラグメントモデルの 1 行のテキスト フィールド
Country
は、2 つの依存するコンテンツフラグメントで同じJapan
値を持つことはできません。2 つ目のインスタンスが試行された場合、警告が表示されます。note note NOTE 言語ルートごとに一意性が確保されます。 note note NOTE バリエーションは、同じフラグメントのバリエーションと同じ 一意の 値を持つことができますが、他のフラグメントのバリエーションで使用されている値とは異なります。 -
特定のデータタイプとそのプロパティについて詳しくは、コンテンツ参照 を参照してください。
-
特定のデータタイプとそのプロパティについて詳しくは、フラグメント参照(ネストされたフラグメント) を参照してください。
検証 validation
様々なデータ型に、結果のフラグメントにコンテンツが入力される際の検証要件を定義できるようになりました。
-
1 行のテキスト
- 事前定義された正規表現と比較します。
-
数値
- 特定の値を確認します。
-
コンテンツ参照
- 特定のタイプのコンテンツをテストします。
- 指定したファイルサイズ以下のアセットのみを参照できます。
- 定義済みの幅または高さ(ピクセル単位)の範囲に収まる画像のみを参照できます。
-
フラグメント参照
- 特定のコンテンツフラグメントモデルをテストします。
参照の使用によるネストされたコンテンツの作成 using-references-to-form-nested-content
コンテンツフラグメントは、次のいずれかのデータタイプを使用して、ネストされたコンテンツを作成できます。
-
- 他のコンテンツへの単純な参照(任意のタイプ)を提供します。
- (結果のフラグメント内で)1 つまたは複数の参照に対して設定できます。
-
フラグメント参照(ネストされたフラグメント)
-
指定した特定のモデルに応じて、他のフラグメントを参照します。
-
構造化データを含めたり、取得したりできます。
note note NOTE このメソッドは、GraphQL でコンテンツフラグメントを使用したヘッドレスコンテンツ配信との関連で特に重要です。 * (結果のフラグメント内で)1 つまたは複数の参照に対して設定できます。
-
-
コンテンツ参照:
これにより、現在のフラグメントへの参照を追加できなくなります。この結果、空のフラグメント参照選択ダイアログが表示される場合があります。 -
GraphQL のフラグメント参照
相互に参照される複数のコンテンツフラグメントを返すディープクエリを作成する場合、最初に null が返されます。
コンテンツ参照 content-reference
コンテンツ参照を使用すると、別のソース(例:画像やコンテンツフラグメント)からコンテンツをレンダリングできます。
標準プロパティに加えて、次のものを指定できます。
-
参照される任意のコンテンツの ルートパス
-
参照可能なコンテンツタイプ
-
ファイルサイズの制限
-
画像が参照されている場合:
- サムネールを表示
- 画像の高さと幅の制限
フラグメント参照(ネストされたフラグメント) fragment-reference-nested-fragments
フラグメント参照は 1 つまたは複数のコンテンツフラグメントを参照します。この機能は、複数のレイヤーを持つ構造化データを取得できるようになるので、アプリケーションで使用するコンテンツを取得する際に特に重要になります。
例:
- 従業員の詳細を定義するモデルです。以下が含まれます。
- 事業主(会社)を定義するモデルへの参照
type EmployeeModel {
name: String
firstName: String
company: CompanyModel
}
type CompanyModel {
name: String
street: String
city: String
}
標準プロパティに加えて、次のものを定義できます。
-
レンダリング時の名前:
-
multifield - フラグメント作成者は個別の参照を複数作成できます。
-
fragmentreference - フラグメント作成者はフラグメントへの 1 つの参照を選択できます。
-
-
モデルタイプ:
複数のモデルを選択できます。コンテンツフラグメントの作成時には、これらのモデルを使用して参照先のフラグメントが既に作成されている必要があります。 -
ルートパス:
任意の参照先フラグメントのルートパスを指定します。 -
フラグメントの作成を許可
これにより、フラグメント作成者は、適切なモデルに基づいてフラグメントを作成できるようになります。
- fragmentreferencecomposite - フラグメント作成者が複数のフラグメントを選択して複合フラグメントを作成できるようになります。
コンテンツフラグメントモデルの有効化または無効化 enabling-disabling-a-content-fragment-model
コンテンツフラグメントモデルの使用を完全に制御するために、設定できるステータスがあります。
コンテンツフラグメントモデルの有効化 enabling-a-content-fragment-model
モデルが作成されたら、次の処理ができるように有効にする必要があります。
- コンテンツフラグメントの作成時に選択する
- コンテンツフラグメントモデル内から参照する
- GraphQL で使用する(スキーマが生成される)
次のいずれかとしてフラグ付けされたモデルを有効にするには
- ドラフト:新規(無効)
- 無効:無効化されている
次のいずれかの「有効にする」オプションを使用できます。
- 上部のツールバー(必要なモデルが選択されている場合)
- 対応するクイックアクション(必要なモデルにマウスを移動)
コンテンツフラグメントモデルの無効化 disabling-a-content-fragment-model
モデルを無効にすると、以下のようになります。
-
このモデルは、新しい コンテンツフラグメントを作成する際の基盤としては使用できなくなります。
-
ただし、
- GraphQL スキーマは生成され続け、スキーマのクエリも引き続き可能です(JSON API への影響を回避するため)。
- モデルに基づくコンテンツフラグメントは、引き続き GraphQL エンドポイントからクエリして返すことができます。
-
モデルは参照できなくなりますが、既存の参照は変更されず、引き続き GraphQL エンドポイントからクエリして返すことができます。
「有効」としてフラグ付けされたモデルを無効にするには、次のいずれかの「無効にする」オプションを使用します。
- 上部のツールバー(必要なモデルが選択されている場合)
- 対応するクイックアクション(必要なモデルにマウスを移動)
アセットフォルダーでのコンテンツフラグメントモデルの許可 allowing-content-fragment-models-assets-folder
コンテンツのガバナンスを実装するには、アセットフォルダーに ポリシー を設定して、そのフォルダーでのフラグメント作成に使用可能なコンテンツフラグメントモデルを管理します。
許可されているコンテンツフラグメントモデル に ポリシー を設定するには:
-
必要なアセットフォルダーの プロパティ を開きます。
-
「ポリシー」タブを開き、以下を設定します。
-
継承元
<folder>
ポリシーは、子フォルダーの作成時に自動的に継承されます。サブフォルダーで親フォルダーとは異なるモデルを許可する必要がある場合は、ポリシーを再設定(継承を解除)できます。
-
許可されているコンテンツフラグメントモデルパス (パス別)
複数のモデルを許可できます。
-
許可されているコンテンツフラグメントモデルタグ (タグ別)
複数のモデルを許可できます。
-
-
変更内容を 保存 します。
フォルダーに対して許可されるコンテンツフラグメントモデルは、次の順序で解決されます。
- 許可されているコンテンツフラグメントモデル の ポリシー。
- 空の場合は、継承ルールを使用してポリシーの決定を試みます。
- 継承チェーンを使用しても結果が得られない場合は、そのフォルダーの Cloud Services 設定を調べます(最初は直接、次に継承を使用して調べます)。
- 上記のいずれでも結果が得られない場合、そのフォルダーに許可されるモデルはありません。
コンテンツフラグメントモデルの削除 deleting-a-content-fragment-model
コンテンツフラグメントモデルを削除するには:
-
ツール/アセット に移動し、コンテンツフラグメントモデル を開きます。
-
コンテンツフラグメントモデルが含まれているフォルダーに移動します。
-
モデルを選択し、次にツールバーの「削除」を選択します。
note note NOTE モデルを参照している場合は、警告が表示されます。適切なアクションを実行します。
コンテンツフラグメントモデルの公開 publishing-a-content-fragment-model
コンテンツフラグメントモデルは、依存するコンテンツフラグメントの公開時または公開前に公開する必要があります。
コンテンツフラグメントモデルを公開するには:
-
ツール/アセット に移動し、コンテンツフラグメントモデル を開きます。
-
コンテンツフラグメントモデルが含まれているフォルダーに移動します。
-
モデルを選択し、次にツールバーの「公開」を選択します。公開ステータスがコンソールに表示されます。
note note NOTE まだ公開されていないモデルのコンテンツフラグメントを公開すると、選択リストにそのことが示され、モデルがフラグメントと共に公開されます。
コンテンツフラグメントモデルを非公開にする unpublishing-a-content-fragment-model
コンテンツフラグメントモデルがフラグメントによって参照されていない場合は、そのモデルを非公開にできます。
コンテンツフラグメントモデルを非公開するには、いずれかを行います。
-
ツール/アセット に移動し、コンテンツフラグメントモデル を開きます。
-
コンテンツフラグメントモデルが含まれているフォルダーに移動します。
-
モデルを選択し、次にツールバーの「非公開」を選択します。
公開ステータスがコンソールに表示されます。
コンテンツフラグメントモデル - プロパティ content-fragment-model-properties
コンテンツフラグメントモデルの下記の プロパティ を編集できます。
-
基本
- モデルタイトル
- タグ
- 説明
- 画像をアップロード