現在表示中:

モデルには、最終的にコンテンツサービスによってレンダリングされるプロパティを定義した、一連のデータタイプが含まれています。さらに、データの整合性を維持するために、他のモデルとの関係も定義されます。

開発者は、リポジトリ内のモデル構造を熟知している必要があります。アプリの要件に従って、独自のモデルやエンティティを作成することができます。

モデルタイプの作成

/libs/settings/mobileapps/model-types に、システム提供のモデルタイプが 2 つ含まれています。これらのシステムモデルタイプを上書きする場合は、上書きの適用先となる設定ノードの下に mobileapps/model-types ノードを作成する必要があります。

例えば、/conf/myconf1/conf/myconf2 に設定を作成している場合に、conf1 に対してのみシステムモデルタイプの上書きを適用するには、conf1 の設定の下に mobileapps/model-types ノードを作成します。

モデルにデータタイプを追加できるようにするには、モデルタイプに「cq:Page」タイプの「scaffolding」という名前の子ノードと、リソースタイプ「wcm/scaffolding/components/scaffolding」を設定する必要があります。

また、基礎モードページで、このモデルタイプから作成されたモデルで使用可能なデータタイプを示す dataTypesConfig プロパティを PageContent ノードに含める必要があります。

注意:

基礎モードページは、そのモデルに基づくエンティティで編集可能なデータタイプを定義するページです。個々のデータタイプについて、UI 上でフィールドをどのように表示するかや、データ値をどのように永続化するかを定義することもできます。

データタイプ設定

データタイプ設定ノードには、データタイプ項目のリストが含まれます。各データタイプ項目では、そのデータタイプをモデルエディターでどのように表示するかと、最終的にエンティティによってレンダリングされるためにどのように永続化する必要があるかを指定します。

プロパティ名 説明
fieldIcon データタイプを表す CoralUI アイコンのクラス
fieldPropResourceType データタイプを設定するためのすべてのプロパティをレンダリングするコンポーネント
fieldProperties fieldPropResourceType が mobileapps/caas/gui/components/models/editor/datatypes/field の場合に使用されるプロパティコンポーネントの複数値リスト
fieldResourceType データタイプの永続化されたノードの resourceType(エンティティエディターでプロパティをレンダリングするコンポーネント)
fieldViewResourceType モデルエディタービューでデータタイプをレンダリングするのに使用するコンポーネント(このプロパティを省略すると、fieldResourceType が使用されます)
fieldTitle モデルエディターに表示されるデータタイプの名前
multiFieldResourceType 複数値が選択された場合に永続化されたノードで使用するリソースタイプ
renderType クライアント側のレンダリングのためのレンダリングのヒント

データタイプ設定のオーバーレイ

「dataTypesConfig」プロパティは、Sling リソースの統合をサポートしています。つまり、システムモデルタイプ(またはカスタムモデルタイプ)で使用されるデータタイプを、オーバーレイノードを使用してカスタマイズできます。

/libs/settings/mobileapps/models/formbuilderconfig/datatypes のオーバーレイを作成し、必要に応じてカスタマイズする必要があります。

例えば、fieldResourceType をカスタムコンポーネントに変更するために、String データタイプのオーバーレイを追加することができます。

Sling リソースの統合について詳しくは、AEM での Sling Resource Merger の使用を参照してください。

chlimage_1

データタイプ

モデルデータタイプは、フォーム投稿時に組み込まれるデータを含むことのできるフォームコンポーネントです。データタイプコンポーネントは、必要なだけ複雑にすることができます。カスタムデータタイプの使用例の 1 つが、特定の国用の住所ブロックです。このようにすると、プリミティブデータタイプを使用して住所ブロックを毎回作成し直す必要がなくなります。

カスタムデータタイプの例は、「/libs/mobileapps/caas/components/form/contentreference」を参照してください。

すべてのプリミティブデータタイプでは、既存の Granite フォームコンポーネントが利用されます。https://docs.adobe.com/docs/en/aem/6-3/develop/ref/granite-ui/api/jcr_root/libs/granite/ui/components/coral/foundation/form/index.html を参照してください。

データタイプ設定にカスタムデータタイプを追加すると、そのデータタイプをモデルエディターで使用できるようになります。

モデルの作成

必要なすべてのモデルタイプとデータタイプを開発したら、モデルの作成に進むことができます。最終的に、作成者はモデルを使用してエンティティを作成し、コンテンツサービスはエンティティを使用してデータをレンダリングします。

モデルを作成するには、現在の設定に基づき使用可能なモデルタイプを選択し、タイトルと説明を指定します。

ダッシュボードからのモデルの作成および管理について詳しくは、モバイルアプリのオーサリングに関する節のモデルの作成を参照してください。

モデルのプロパティ

以下の表では、モデルに定義されたプロパティを示します。

プロパティ名 説明
モデルタイトル モデルの名前
説明 モデルの説明
サムネール モデルのサムネールイメージ
モデルタイプ モデルのタイプ(単なる文字列、または実際のコンポーネントへのパスを指定できます)
許可されている子 このテンプレートの子となることが許可されているテンプレートのパス
許可された親 このテンプレートの親となることが許可されているテンプレートのパス

注意:

「許可されている子」および「許可された親」プロパティは、ページテンプレートと同じルールに従います。詳しくは、ページテンプレートを参照してください。

「モデルタイプ」に関して、すべてのモデルは mobileapps/caas/components/data/entity のスーパータイプを持っている必要がありますが、サブタイプを指定して、コンテンツ配信をカスタマイズできます。また、すべてのモデルタイプを一意にすることで、コンテンツサービスのクライアントがデータのオブジェクトを識別できるようになります。

モデルの編集

モデルを編集するには、編集するモデルに関連付けられている基礎モードダイアログフォームを開きます。通常、基礎モードはモデルの子ノードですが、「cq:scaffolding」プロパティを使用してパスを指定すれば、必要に応じてモデルの外に配置することができます。この方法は、異なるプロパティを指定する必要がある複数のモデルで同じ基礎モードを共有する場合に便利です。

モデルの基礎モードが配置されている場合、モデルエディターは「jcr:content/cq:dialog/content」の下に配置されているものをレンダリングします。現在、クライアント側のフォームビルダーエンジンは、最大で 3 列の固定レイアウトのみをサポートしています。レンダリングされたフォームダイアログの右側に、データタイプ設定に指定されたすべてのデータタイプのリストが表示されます。それらをクリックしてデータタイプを編集できます。右側のレールが、選択したデータタイプの「プロパティ」タブに切り替わります。新しいデータタイプをプレビューキャンバスにドラッグすると、そのデータタイプが追加されます。「保存」をクリックすると、変更内容がサーバーに反映されます。「キャンセル」をクリックすると、モデルエディターが閉じます。

注意:

すべてのモデルはテンプレートなので、すべての AEM テンプレートルールに従います。これにより、allowedParents や allowedChildren などのプロパティを使用できます。これらは、モデルに基づいて新しいエンティティを作成するときに有効になります。テンプレートルールにより、エンティティの階層に応じた特定のモデルのみに基づいてエンティティを作成することができます。

ダッシュボードからのモデルの編集について詳しくは、モバイルアプリのオーサリングの節のモデルの作成を参照してください。

システムモデル

単純なコンテンツ再利用のために、2 種類のシステムモデルがあらかじめ用意されています。これらのモデルは編集できません。

ページモデル

ページモデルを使用すると、簡単に Sites の既存のコンテンツを再利用してコンテンツサービスで配信できます。

ページモデルに基づくエンティティの resourceType は mobileapps/caas/components/data/pages です。

パス:Sites ページへのパスです。このパス(およびその子)のコンテンツは、コンテンツサービスハンドラーによってレンダリングされます。

アセットモデル

アセットモデルを使用すると、簡単に Assets の既存のコンテンツを再利用してコンテンツサービスで配信できます。

アセットモデルに基づくエンティティの resourceType は mobileapps/caas/components/data/assets です。

アセットリスト:Assets からのパスのリストです。各アセットは子エンティティノードとして追加され、resourceType は wcm/foundation/components/image となります。

注意:

ダッシュボードからのモデルの作成にこれらのテンプレートを使用する方法について詳しくは、モバイルアプリのオーサリングの節のモデルの作成を参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

リーガルノーティス   |   プライバシーポリシー