コンテンツフラグメントモデル

Adobe Experience Manager(AEM) のコンテンツフラグメントモデルas a Cloud Serviceでは、 コンテンツフラグメント. その後、これらのフラグメントは、ページオーサリングに使用したり、ヘッドレスコンテンツの基盤として使用したりできます。

コンテンツフラグメントモデルを使用するには、以下を行います。

  1. インスタンスに対するコンテンツフラグメントモデル機能の有効化
  2. コンテンツフラグメントモデルの作成設定
  3. コンテンツフラグメントの作成時に使用するために、コンテンツフラグメントモデルを有効にする
  4. ポリシー​の設定による必要なアセットフォルダーに対するコンテンツフラグメントモデルの許可

コンテンツフラグメントモデルの作成

  1. ツール一般​に移動し、コンテンツフラグメントモデル​を開きます。

  2. 次に該当するフォルダーに移動します。 設定またはサブ設定.

  3. 用途 作成 をクリックしてウィザードを開きます。

    注意

    次の場合、 コンテンツフラグメントモデルの使用が有効になっていません作成 オプションは使用できません。

  4. モデルタイトル」を指定します。また、様々なプロパティ ( 例えば、 タグ, a 説明​を選択します。 モデルを有効にする から モデルを有効にする 必要に応じて、
    デフォルトのプレビュー URL パターン.

    メモ

    詳しくは、 コンテンツフラグメントモデル — プロパティ を参照してください。

    タイトルと説明

  5. 用途 作成 空のモデルを保存します。 アクションの成功を示すメッセージが表示されます。このメッセージで、「 開く をクリックして、モデルを直ちに編集するか、 完了 コンソールに戻ります。

コンテンツフラグメントモデル - プロパティ

これらのプロパティは、モデルの作成時に定義され、後で プロパティ コンテンツフラグメントモデルのオプション:

  • 基本
    • モデルタイトル

    • タグ

    • 説明

    • モデルを有効化

    • デフォルトのプレビュー URL パターン
      コンテンツフラグメントエディターを使用すると、作成者は次の操作を実行できます。 プレビュー 外部フロントエンドアプリケーションのコンテンツ。 1 回 プレビューサービス が設定されている場合は、フロントエンドアプリケーションの URL を追加します。

      プレビュー URL は次のパターンに従う必要があります。
          https://<preview_url>?param=${expression}

      使用できる式は次のとおりです。

      • ${contentFragment.path}
      • ${contentFragment.model.path}
      • ${contentFragment.model.name}
      • ${contentFragment.variation}
      • ${contentFragment.id}
    • 画像をアップロード

コンテンツフラグメントモデルの定義

コンテンツフラグメントモデルは、選択した データタイプ. モデルエディターを使用して、データ型のインスタンスを追加し、それらを設定して必須フィールドを作成できます。

注意

既存のコンテンツフラグメントで既に使用されているモデルを編集すると、それらの依存フラグメントに影響を与える可能性があります。

  1. ツール一般​に移動し、コンテンツフラグメントモデル​を開きます。

  2. コンテンツフラグメントモデルを含むフォルダーに移動します。

  3. 必要なモデルを 編集 用に開きます。クイック操作を使用するか、モデルを選択してツールバーから操作を選択します。

    モデルエディターを開くと、次の内容が表示されます。

    • 左:フィールドが既に定義されています
    • 右:フィールドの作成に使用できる​データタイプ(およびフィールドの作成後に使用する​プロパティ
    メモ

    フィールドが 必須ラベル 左側のウィンドウにアスタリスク (*) をクリックします。

プロパティ

  1. フィールドを追加するには

    • 必要なデータタイプをフィールドの必要な場所にドラッグします。

      データタイプをドラッグしてフィールドを作成

    • フィールドがモデルに追加されると、右側のパネルに プロパティ 特定のデータ型に対して定義できる ここで、そのフィールドに必要な項目を定義することができます。

      • 多くのプロパティは自明です。詳しくは「プロパティ」を参照してください。

      • a の入力 フィールドラベル 自動完了 プロパティ名 — 空の場合は、後で手動で更新できます。

        注意

        プロパティを手動で更新する場合 プロパティ名 データ型の場合、名前には次の文字が含まれている必要があります。 のみ A-Z、a-z、0-9、アンダースコア「_」は特殊文字として使用します。

        以前のバージョンのAEMで作成されたモデルに無効な文字が含まれている場合は、それらの文字を削除または更新します。

      例:

      フィールドのプロパティ

  2. フィールドを削除するには

    必須フィールドを選択し、ごみ箱アイコンをクリックまたはタップします。 アクションの確認を求められます。

    削除

  3. すべての必須フィールドを追加し、必要に応じて関連するプロパティを定義します。例:

    保存します

  4. 保存」を選択して、定義を保持します。

データタイプ

モデルの定義には、次のデータタイプを選択できます。

  • 1 行のテキスト

    • 1 行のテキストのフィールドを 1 つ以上追加(最大長は定義可能)
  • 複数行テキスト

    • リッチテキスト、プレーンテキストまたは Markdown のテキスト領域
    メモ

    テキスト領域がリッチテキスト、プレーンテキスト、Markdown のどれであるかは、モデル内で、プロパティによって定義されます。 デフォルトのタイプ.

    この形式は、 コンテンツフラグメントエディターモデルからのみ取得できます。

  • 数値

    • 1 つ以上の数値フィールドを追加
  • ブール型

    • ブール型チェックボックスを追加
  • 日時

    • 日付や時刻を追加
  • 列挙

    • チェックボックス、ラジオボタン、ドロップダウンの各フィールドを追加する
  • タグ

    • フラグメント作成者がタグの領域にアクセスして選択できるようにする
  • コンテンツ参照

  • フラグメント参照

    • 他のコンテンツフラグメントを参照します。 ネストされたコンテンツを作成
    • このデータタイプは、フラグメント作成者が次の操作を行えるように設定可能です。
      • 参照先フラグメントの直接編集
      • 適切なモデルに基づいて、新しいコンテンツフラグメントを作成します
  • JSON オブジェクト

    • コンテンツフラグメント作成者がフラグメントの対応する要素に JSON 構文を入力できるようにします。
      • 別のサービスからコピー&ペーストした JSON を AEM に直接保存できるようにする。
      • JSON が渡され、GraphQLに JSON として出力されます。
      • JSON 構文のハイライト表示、オートコンプリート、エラーハイライト表示をコンテンツフラグメントエディターに組み込みます。
  • タブプレースホルダー

    • コンテンツフラグメントコンテンツの編集時に使用するタブを導入可能

      • これらは、モデルエディターで区切りとして表示され、コンテンツデータタイプのリストの各セクションに分けられます。 各インスタンスは、新しいタブの開始を表します。

      • フラグメントエディターでは、各インスタンスがタブとして表示されます。

      メモ

      このデータタイプは書式設定にのみ使用され、AEM GraphQL スキーマでは無視されます。

プロパティ

多くのプロパティは自明です。プロパティによっては次に示す追加の詳細情報があります。

  • プロパティ名

    データ型のこのプロパティを手動で更新する場合、名前 必須 次を含む のみ A-Z、a-z、0-9、アンダースコア「_」は特殊文字として使用します。

    注意

    以前のバージョンの AEM で作成されたモデルに不正な文字が含まれている場合は、それらの文字を削除または更新してください。

  • Render As
    フラグメント内のフィールドを実現/レンダリングするための様々なオプション。多くの場合、これにより、作成者にフィールドの 1 つのインスタンスが表示されるか、作成者が複数のインスタンスを作成できるかを定義できます。

  • フィールドラベル フィールドラベル を自動生成します。 プロパティ名(必要に応じて手動で更新できます)

  • 検証​基本検証は、
    必須​プロパティなどのメカニズムで使用できます。一部のデータ型には、追加の検証フィールドがあります。詳しくは、「検証」を参照してください。

  • データタイプが​複数行テキスト​の場合、「デフォルトの種類」を次のいずれかとして定義できます。

    • リッチテキスト
    • Markdown
    • プレーンテキスト

    指定しなかった場合は、デフォルト値の​リッチテキスト​がこのフィールドで使用されます。

    の変更 デフォルトのタイプ コンテンツフラグメントモデルで有効になるのは、そのフラグメントがエディターで開かれて保存された後で、関連する既存のコンテンツフラグメントに対してのみです。

  • ユニーク
    (特定のフィールドの)コンテンツは、現在のモデルから作成されるすべてのコンテンツフラグメントで一意である必要があります。

    これにより、同じモデルの別のフラグメントに既に追加されているコンテンツをコンテンツ作成者が繰り返し作成できないようになります。

    例えば、コンテンツフラグメントモデルの 1 行のテキスト​フィールド Country は、2 つの依存するコンテンツフラグメントで同じ Japan 値を持つことはできません。2 番目のインスタンスを試行すると、警告が表示されます。

    メモ

    言語ルートごとに一意性が確保されます。

    メモ

    バリエーションは、同じフラグメントのバリエーションと同じ​一意の​値を持つことができますが、他のフラグメントのバリエーションで使用されている値とは異なります。

  • 特定のデータタイプとそのプロパティについて詳しくは、コンテンツ参照​を参照してください。

  • 特定のデータタイプとそのプロパティについて詳しくは、フラグメント参照(ネストされたフラグメント)​を参照してください。

  • 変換可能

    コンテンツフラグメントモデルエディターのフィールドの「翻訳可能」チェックボックスをオンにした場合:

    • フィールドのプロパティ名がまだ存在しない場合は、翻訳設定のコンテキスト /content/dam/<sites-configuration> に確実に追加されます。
    • GraphQL の場合:「コンテンツフラグメント」フィールドの <translatable> プロパティを yes に設定して、変換可能なコンテンツのみを含む JSON を出力するための GraphQL クエリフィルターを許可します。

検証

様々なデータ型に、結果のフラグメントにコンテンツが入力される際の検証要件を定義できるようになりました。

  • 1 行のテキスト
    • 事前定義された正規表現と比較します。
  • 数値
    • 特定の値を確認します。
  • コンテンツ参照
    • 特定のタイプのコンテンツをテストします。
    • 指定したファイルサイズ以下のアセットのみを参照できます。
    • 定義済みの幅または高さ(ピクセル単位)の範囲に収まる画像のみを参照できます。
  • フラグメント参照
    • 特定のコンテンツフラグメントモデルをテストします。

参照の使用によるネストされたコンテンツの作成

コンテンツフラグメントは、次のいずれかのデータタイプを使用して、ネストされたコンテンツを作成できます。

メモ

AEMは次の繰り返し保護を持ちます:

  • コンテンツ参照
    これにより、ユーザーは現在のフラグメントに参照を追加できなくなり、フラグメント参照ピッカーダイアログが空になる場合があります。

  • GraphQL のフラグメント参照
    相互に参照される複数のコンテンツフラグメントを返すディープクエリを作成した場合、1 番目の値では null が返されます。

コンテンツ参照

コンテンツ参照を使用すると、画像、ページ、エクスペリエンスフラグメントなど、別のソースからコンテンツをレンダリングできます。

標準プロパティに加えて、次のものを指定できます。

  • The ルートパス:参照コンテンツを保存する場所を指定します。

    メモ

    これは、コンテンツフラグメントエディターの使用時に、このフィールドで画像を直接アップロードして参照する場合に必須です。

    詳しくは、 参照画像 詳しくは、を参照してください。

  • 参照可能なコンテンツタイプ

    メモ

    次を含める必要があります。 画像 コンテンツフラグメントエディターの使用時に、このフィールドで画像を直接アップロードして参照する場合。

    詳しくは、 参照画像 詳しくは、を参照してください。

  • ファイルサイズの制限

  • 画像が参照されている場合:

    • サムネールを表示
    • 画像の高さと幅の制限

コンテンツ参照

フラグメント参照(ネストされたフラグメント)

フラグメント参照は、1 つ以上のコンテンツフラグメントを参照します。 この機能は、複数のレイヤーを持つ構造化データを取得できるので、アプリで使用するコンテンツを取得する場合に特に重要です。

例:

  • 従業員の詳細を定義するモデル。次のものが含まれます。
    • 事業主(会社)を定義するモデルへの参照
type EmployeeModel {
    name: String
    firstName: String
    company: CompanyModel
}

type CompanyModel {
    name: String
    street: String
    city: String
}

標準プロパティに加えて、次のものを定義できます。

  • レンダリング時の名前:

    • multifield - フラグメント作成者は個別の参照を複数作成できます。

    • fragmentreference - フラグメント作成者はフラグメントへの 1 つの参照を選択できます。

  • モデルタイプ
    複数のモデルを選択できます。コンテンツフラグメントに参照を追加する場合、参照されるフラグメントは、これらのモデルを使用して作成されている必要があります。

  • ルートパス
    任意の参照先フラグメントのルートパスを指定します。

  • フラグメントの作成を許可

    これにより、フラグメント作成者は、適切なモデルに基づいて新しいフラグメントを作成できます。

    • fragmentreferencecomposite - フラグメント作成者が複数のフラグメントを選択して複合フラグメントを作成できるようになります。

    フラグメント参照

メモ

繰り返し防止メカニズムが設定されます。これにより、ユーザーがフラグメント参照で現在のコンテンツフラグメントを選択することが禁止され、フラグメント参照ピッカーダイアログが空になる場合があります。

また、GraphQLのフラグメント参照に対する繰り返し保護もあります。 相互に参照する 2 つのコンテンツフラグメントにまたがるディープクエリを作成すると、null が返されます。

コンテンツフラグメントモデルの有効化または無効化

次のいずれかを実行できます。 有効にする または 無効にする コンテンツフラグメントモデルを使用して、その使用を完全に制御できます。

コンテンツフラグメントモデルの有効化

モデルを作成したら、次の操作を実行するために有効にする必要があります。

  • 新しいコンテンツフラグメントの作成時に選択する
  • コンテンツフラグメントモデル内から参照する
  • GraphQL で使用する(スキーマが生成される)

次のいずれかとしてフラグ付けされたモデルを有効にするには

  • ドラフト :新規(無効)
  • 無効:明示的に無効化されている

​有効化」オプションは、次のいずれかから使用します。

  • 上部のツールバー(必要なモデルが選択されている場合)
  • 対応するクイックアクション(必要なモデルにマウスを移動)

ドラフトまたは無効なモデルの有効化

コンテンツフラグメントモデルの無効化

モデルを無効にすると、以下のようになります。

  • このモデルは、新しい​コンテンツフラグメントを作成する際の基盤としては使用できなくなります。
  • ただし、
    • GraphQL スキーマは生成され続け、スキーマのクエリも引き続き可能です(JSON API への影響を回避するため)。
    • モデルに基づくコンテンツフラグメントは、引き続き GraphQL エンドポイントからクエリして返すことができます。
  • モデルは参照できなくなりますが、既存の参照は変更されず、引き続き GraphQL エンドポイントからクエリして返すことができます。

次のフラグが設定されたモデルを無効にするには 有効​を使用する場合、 無効にする 次のいずれかのオプション:

  • 上部のツールバー(必要なモデルが選択されている場合)
  • 対応するクイックアクション(必要なモデルにマウスを移動)

有効なモデルの無効化

アセットフォルダーでのコンテンツフラグメントモデルの許可

コンテンツのガバナンスを実装するには、アセットフォルダーに​ポリシー​を設定して、そのフォルダーでのフラグメント作成に使用可能なコンテンツフラグメントモデルを管理します。

メモ

このメカニズムは、ページの高度なプロパティでページとその子に対してページテンプレートを許可することに似ています。

許可されているコンテンツフラグメントモデル​に​ポリシー​を設定するには:

  1. 必要なアセットフォルダーの​プロパティ​を開きます。

  2. ポリシー」タブを開き、以下を設定します。

    • 継承元<folder>

      新しい子フォルダーを作成すると、ポリシーは自動的に継承されます。親フォルダーとは異なるモデルをサブフォルダーに許可する必要がある場合は、ポリシーを再設定(および継承を解除)できます。

    • 許可されているコンテンツフラグメントモデルパス (パス別)

      複数のモデルを許可できます。

    • 許可されているコンテンツフラグメントモデルタグ (タグ別)

      複数のモデルを許可できます。

    コンテンツフラグメントモデルポリシー

  3. 変更内容を​保存​します。

フォルダーに対して許可されるコンテンツフラグメントモデルは、次の順序で解決されます。

  • 許可されているコンテンツフラグメントモデル​の​ポリシー
  • 空の場合は、継承ルールを使用してポリシーの決定を試みます。
  • 継承チェーンを使用しても結果が得られない場合は、そのフォルダーの Cloud Services 設定を調べます(最初は直接、次に継承を使用して調べます)。
  • 上記のいずれでも結果が得られない場合、そのフォルダーに許可されるモデルはありません。

コンテンツフラグメントモデルの削除

注意

コンテンツフラグメントモデルを削除すると、依存するフラグメントに影響を与える場合があります。

コンテンツフラグメントモデルを削除するには:

  1. ツール一般​に移動し、コンテンツフラグメントモデル​を開きます。

  2. コンテンツフラグメントモデルを含むフォルダーに移動します。

  3. モデルを選択し、その後に 削除 をクリックします。

    メモ

    モデルが参照されている場合は、適切なアクションを実行できるように警告が表示されます。

コンテンツフラグメントモデルの公開

依存するコンテンツフラグメントが公開される前または後に、コンテンツフラグメントモデルを公開する必要があります。

コンテンツフラグメントモデルを公開するには:

  1. ツール一般​に移動し、コンテンツフラグメントモデル​を開きます。

  2. コンテンツフラグメントモデルを含むフォルダーに移動します。

  3. モデルを選択し、次にツールバーの「公開」を選択します。公開済みのステータスがコンソールに表示されます。

    メモ

    モデルがまだ公開されていないコンテンツフラグメントを公開する場合、選択リストにその旨が表示され、モデルはフラグメントと共に公開されます。

コンテンツフラグメントモデルを非公開にする

コンテンツフラグメントモデルがどのフラグメントでも参照されていない場合は、非公開にできます。

コンテンツフラグメントモデルを非公開にするには:

  1. ツール一般​に移動し、コンテンツフラグメントモデル​を開きます。

  2. コンテンツフラグメントモデルを含むフォルダーに移動します。

  3. モデルを選択し、次にツールバーの「非公開」を選択します。公開済みのステータスは、コンソールに示されます。

1 つ以上のフラグメントで現在使用されているモデルを非公開にしようとすると、エラー警告が表示されます。 例:

使用中のモデルを非公開にするときに表示されるコンテンツフラグメントモデルのエラーメッセージ

このメッセージでは、 参照 詳細を調べるパネル:

参照パネル内のコンテンツフラグメントモデル

ロック済み(公開済み)コンテンツフラグメントモデル

この機能は、公開済みのコンテンツフラグメントモデルに対するガバナンスを提供します。

課題

  • コンテンツフラグメントモデルは、AEM における GraphQL クエリのスキーマを決定します。

    • AEM GraphQL スキーマは、コンテンツフラグメントモデルが作成されると同時に作成され、オーサー環境とパブリッシュ環境の両方に存在できます。

    • 公開上のスキーマは、JSON 形式のコンテンツフラグメントコンテンツをライブ配信する場合の基盤となるので、非常に重要です。

  • コンテンツフラグメントモデルが変更つまり編集された場合には、問題が発生する可能性があります。つまり、スキーマの変更が既存の GraphQL クエリに影響を与える可能性があります。

  • コンテンツフラグメントモデルに新しいフィールドを追加する場合は、(通常は)悪影響はありません。ただし、既存のデータフィールド(名前など)を変更したり、フィールド定義を削除したりすると、既存の GraphQL クエリでこれらのフィールドをリクエストする際に、クエリが機能しなくなります。

要件

  • ライブコンテンツ配信に既に使用されているモデル(つまり、公開済みのモデル)を編集する際のリスクをユーザーに認識させる。

  • 意図しない変更を避ける。

変更されたモデルが再公開されると、どちらの条件でもクエリが壊れる場合があります。

解決策

これらの問題に対処するために、コンテンツフラグメントモデルは、公開され次第、オーサー環境では読み取り専用モードに​ロック​されます。このステータスは、 ロック済み:

ロックされたコンテンツフラグメントモデルのカード

モデルが​ロック済み(読み取り専用モード)の場合、モデルの内容と構造は表示できますが、モデルを編集することはできません。

ロック済み​モデルは、コンソールまたはモデルエディターで管理できます。

  • コンソール

    コンソールで、ツールバーの「ロック解除」および「ロック」アクションを使用して、読み取り専用モードを管理できます。

    ロックされたコンテンツフラグメントモデルのツールバー

    • モデルを​ロック解除​して編集を有効にすることができます。

      次を選択した場合、 ロック解除 警告が表示され、確認する必要があります。 ロック解除 アクション:
      コンテンツフラグメントモデルをロック解除する際のメッセージ

      その後、モデルを編集用に開くことができます。

    • 編集後にまたモデルを​ロック​することもできます。

    • モデルを再公開すると、すぐにに戻ります。 ロック済み (読み取り専用)モード。

  • モデルエディター

    • ロックされているモデルを開くと、警告が表示され、「キャンセル」、「読み取り専用で表示」、「編集」の 3 つのアクションが提示されます。

      ロックされたコンテンツフラグメントモデルを表示する際のメッセージ

    • 次を選択した場合、 読み取り専用を表示​を使用すると、モデルのコンテンツと構造を確認できます。

      読み取り専用で表示 - ロックされたコンテンツフラグメントモデル

    • 次を選択した場合、 編集、以下の方法で更新内容を編集および保存できます。

      編集 - ロックされたコンテンツフラグメントモデル

      メモ

      まだ上部に警告が表示される場合がありますが、その場合は、モデルが既存のコンテンツフラグメントで既に使用されています。

    • キャンセル コンソールに戻ります。

このページ