[AEM Sites]{class="badge positive" title="AEM Sitesに適用)。"}
コンテンツフラグメントモデルの定義 defining-content-fragment-models
Adobe Experience Manager(AEM)as a Cloud Service のコンテンツフラグメントモデルでは、コンテンツフラグメントのコンテンツの構造を定義します。 これらのフラグメントは、ページオーサリングまたはヘッドレスコンテンツの基盤として使用できます。
このページでは、専用のエディターを使用してコンテンツフラグメントモデルを定義する方法について説明します。 コンテンツフラグメントコンソールから実行できるアクション、フォルダーでのモデルの許可、モデルの公開など、フラグメントの作成後に実行できるタスクとオプションについて詳しくは、コンテンツフラグメントモデルの管理を参照してください。
- 「このモデルにはカスタム UI スキーマが設定されています。 このUIに表示されるフィールドの順序は、UI スキーマと一致しない可能性があります。 UI スキーマに沿ったフィールドを表示するには、新しいコンテンツフラグメントエディターに切り替える必要があります。」
コンテンツフラグメントモデルの定義 defining-your-content-fragment-model
コンテンツフラグメントモデルは、データタイプの選択を使用して、結果として得られるコンテンツフラグメントの構造を効果的に定義します。 モデルエディターを使用して、データタイプのインスタンスを追加し、それらを設定して必須フィールドを作成できます。
-
コンテンツフラグメントコンソールで、コンテンツフラグメントモデルのパネルを選択し、コンテンツフラグメントモデルが格納されているフォルダーに移動します。
note NOTE また、モデルを作成した後に直接開くこともできます。 -
編集に必要なモデルを開きます。クイックアクションリンクのいずれかを使用するか、モデルを選択してからツールバーからアクションを選択します。
モデルを開くと、モデルエディターに以下の情報が表示されます。
-
上位:
- ホーム アイコン
- originalと新しいエディターを切り替えるオプション
- キャンセル
- 保存
-
左:フィールドの作成に使用できるデータタイプ
-
中間:フィールドは既に追加 オプションと共に定義されています
-
右:右端のアイコンを使用すると、次のいずれかを選択できます。
- プロパティ:選択したフィールドのプロパティを定義して表示します
- モデルの詳細: 有効状態、モデルタイトル、タグ、説明および プレビューURL を表示します
-
-
フィールドを追加するには
-
以下のいずれかの操作を行います。
- 左側のパネルから、中央のパネルのフィールドの必要な場所にデータタイプをドラッグします。
- データタイプで+ アイコンを選択して、フィールドリストの下部に追加します。
- 中央のパネルで「追加」を選択し、結果のドロップダウンリストから必要なデータタイプを選択して、リストの下部にフィールドを追加します。
note NOTE タブ プレースホルダー フィールドは、常に既存のフィールドの上に表示する必要があります。 -
フィールドボックスの左側にあるドットの配置を使用して、フィールドの位置を変更できます。
-
フィールドがモデルに追加され(および選択されると)、右側のパネルには、特定のデータタイプに定義できる プロパティ が表示されます。 ここでは、キャンペーンのターゲティングに必要な
フィールド。-
多くのプロパティは自明です。詳しくは、プロパティ(データタイプ)を参照してください。
-
「フィールドラベル」を入力すると、「プロパティ名」が空欄の場合は自動入力され、後で手動で更新できます。
note caution CAUTION データタイプのプロパティの「プロパティ名」を手動で更新する場合、名前には、A~Z、a~z、0~9 および特殊文字のアンダースコア「_」のみを使用することができます。 以前のバージョンの AEM で作成されたモデルに不正な文字が含まれている場合は、それらの文字を削除または更新します。
例:
note NOTE フィールドが Required として定義されている場合、中央のペインに表示されている Label にはアスタリスク (*)が付けられます。 -
-
-
フィールドを削除するには
中央のパネルで、適切なフィールドのゴミ箱アイコンを選択します。
-
すべての必須フィールドを追加し、必要に応じて関連するプロパティを定義します。
-
「保存」を選択して、定義を保持します。
データタイプ data-types
モデルの定義には、次のデータタイプを選択できます。
-
1 行のテキスト
- 1 行のテキストのフィールドを追加(最大長は定義可能)
- フィールドは、フラグメント作成者がフィールドの新しいインスタンスを作成できるように設定可能
-
複数行テキスト
- リッチテキスト、プレーンテキストまたはマークダウンのテキストエリア
- フィールドは、フラグメント作成者がフィールドの新しいインスタンスを作成できるように設定可能
note NOTE テキストエリアがリッチテキスト、プレーンテキストまたはマークダウンのどれであるかは、モデル内で、プロパティの デフォルトのタイプ によって定義されます。 この形式は、コンテンツフラグメントエディターから変更はできませんが、モデルからのみ変更できます。 -
数値
- 数値フィールドを追加
- フィールドは、フラグメント作成者がフィールドの新しいインスタンスを作成できるように設定可能
-
ブール型
- ブール型チェックボックスを追加
-
日時
- 日付/時間フィールドを追加
-
列挙
- チェックボックス、ラジオボタン、ドロップダウンフィールドのセットを追加
- フラグメント作成者が使用できるオプションを指定可能
- チェックボックス、ラジオボタン、ドロップダウンフィールドのセットを追加
-
タグ
- フラグメント作成者がタグの領域にアクセスして選択できるようにする
-
フラグメント参照
-
他のコンテンツフラグメントの参照をネストされたコンテンツの作成に使用可能
-
このデータタイプは、フラグメント作成者が次の操作を行えるように設定可能です。
- 参照先フラグメントの直接編集
- 適切なモデルに基づいた新しいコンテンツフラグメントの作成
- フィールドの新しいインスタンスの作成
-
参照は、参照先リソースへのパスを指定します。例:
/content/dam/path/to/resource
-
-
コンテンツ参照
- 任意のタイプの他のコンテンツの参照をネストされたコンテンツの作成に使用可能
- 画像が参照されている場合は、サムネールを表示するように選択可能
- フィールドは、フラグメント作成者がフィールドの新しいインスタンスを作成できるように設定可能
- 参照は、参照先リソースへのパスを指定します。例:
/content/dam/path/to/resource
-
JSON オブジェクト
-
コンテンツフラグメントの作成者がフラグメントの対応する要素に JSON 構文を入力できます。
- 別のサービスからコピー&ペーストした JSON を AEM に直接保存できるようにします。
- JSON が渡され、GraphQL で JSON として出力されます。
- コンテンツフラグメントエディターに JSON 構文のハイライト表示機能、オートコンプリートおよびエラーのハイライト表示機能が含まれています。
-
-
タブ プレースホルダー
-
コンテンツフラグメントコンテンツの編集時に使用するタブを導入できます。
- モデルエディターで区切りとして表示され、コンテンツデータタイプのリストをセクションに分割します。 各インスタンスは、新しいタブの開始を表します。
- フラグメントエディターでは、各インスタンスがタブとして表示されます。
note NOTE このデータタイプは書式設定にのみ使用され、AEM GraphQL スキーマでは無視されます。 タブ プレースホルダー フィールドは、常に既存のフィールドの上に表示する必要があります。
-
プロパティ(データタイプ) properties
多くのプロパティは一目瞭然です。プロパティによっては、次に示す追加の詳細情報があります。
-
プロパティ名
データタイプのこのプロパティを手動で更新する場合、名前には、A~Z、a~z、0~9 および特殊文字としてアンダースコア「_」のみを使用する必要があります。
note caution CAUTION 以前のバージョンの AEM で作成されたモデルに不正な文字が含まれている場合は、それらの文字を削除または更新します。 -
レンダリング形式
フラグメント内でのフィールドの表示方法に関する各種オプション。 多くの場合、これにより、オーサーにフィールドの 1 つのインスタンスが表示されるか、オーサーが複数のインスタンスを作成できるかを定義できます。 複数フィールドを使用する場合、項目の最小数と最大数を定義できます。詳しくは、検証を参照してください。
-
フィールドラベル
フィールドラベルを入力すると、プロパティ名が自動生成され、必要に応じて手動で更新できます。 -
検証
基本的な検証は、Required プロパティなどのメカニズムで利用できます。 一部のデータタイプには、追加の検証フィールドがあります。 詳しくは、「検証」を参照してください。 -
データタイプが 複数行テキスト の場合、「デフォルトの種類」を次のいずれかとして定義できます。
- リッチテキスト
- Markdown
- プレーンテキスト
指定しなかった場合は、デフォルト値の リッチテキスト がこのフィールドで使用されます。
コンテンツフラグメントモデルで デフォルトのタイプ を変更した場合、その影響が既存の関連コンテンツフラグメントに及ぶのは、そのフラグメントがエディターで開かれて保存された後です。
-
一意
(特定のフィールドの)コンテンツは、現在のモデルから作成されたすべてのコンテンツフラグメントで一意である必要があります。これにより、同じモデルの別のフラグメントに既に追加されているコンテンツをコンテンツ作成者が繰り返し作成できないようになります。
例えば、コンテンツフラグメントモデルの 1 行のテキストフィールド
Countryは、2 つの依存するコンテンツフラグメントで同じJapan値を持つことはできません。 2 つ目のインスタンスが試行された場合、警告が表示されます。note NOTE 言語ルートごとに一意性が確保されます。 note NOTE バリエーションは、同じフラグメントのバリエーションと同じ 一意の 値を持つことができますが、他のフラグメントのバリエーションで使用されている値とは異なります。 -
特定のデータタイプとそのプロパティについて詳しくは、コンテンツ参照を参照してください。
-
特定のデータタイプとそのプロパティについて詳しくは、フラグメント参照(ネストされたフラグメント)を参照してください。
-
変換可能
コンテンツフラグメントモデルエディターのフィールドの「翻訳可能」チェックボックスをオンにした場合:
- フィールドのプロパティ名がまだ存在しない場合は、翻訳設定のコンテキスト
/content/dam/<sites-configuration>に確実に追加されます。 - GraphQL の場合:「コンテンツフラグメント」フィールドの
<translatable>プロパティをyesに設定して、変換可能なコンテンツのみを含む JSON を出力するための GraphQL クエリフィルターを許可します。
- フィールドのプロパティ名がまだ存在しない場合は、翻訳設定のコンテキスト
検証 validation
様々なデータタイプに、結果のフラグメントにコンテンツが入力される際の検証要件を定義できるようになりました。
-
1 行のテキスト
- 事前定義された正規表現と比較します。
-
数値
- 特定の値を確認します。
-
コンテンツ参照
- 特定のタイプのコンテンツをテストします。
- 指定したファイルサイズ以下のアセットのみを参照できます。
- 定義済みの幅または高さ(ピクセル単位)の範囲に収まる画像のみを参照できます。
-
フラグメント参照
- 特定のコンテンツフラグメントモデルをテストします。
-
最小項目数/最大項目数
複数フィールドとして定義されているフィールド(レンダリング形式で設定)には、次のオプションがあります。
- 最小項目数
- 最大項目数
これらは、コンテンツフラグメントエディターで検証されます。
参照の使用によるネストされたコンテンツの作成 using-references-to-form-nested-content
コンテンツフラグメントは、次のいずれかのデータタイプを使用して、ネストされたコンテンツを作成できます。
-
- 他のコンテンツへの単純な参照(任意のタイプ)を提供します。
- コンテンツ参照 データ型によって提供されます
- (結果のフラグメント内で)1 つまたは複数の参照に対して設定できます。
-
フラグメント参照(ネストされたフラグメント)
-
指定した特定のモデルに応じて、他のフラグメントを参照します。
-
フラグメント参照 データ型によって提供されます
-
構造化データを含める/取得できます。
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 - フラグメント作成者が複数のフラグメントを選択して複合フラグメントを作成できるようになります。