ユニバーサルエディターでの AEM Forms の Edge Delivery Services の基本を学ぶ
AEM Forms 向け Edge Delivery Services では、パフォーマンスの高い web 配信とユニバーサルエディターの WYSIWYG オーサリングを組み合わせます。このガイドでは、高速読み込みフォームの作成、カスタマイズ、公開について説明します。
このチュートリアルでできること
このチュートリアルを完了すると、次のことができるようになります。
- アダプティブフォームブロックを使用して GitHub リポジトリを設定する
- Edge Delivery Services と統合された AEM サイトを作成する
- ユニバーサルエディターを使用してフォームを作成および公開する
- ローカル開発環境を設定する
パスの選択
シナリオに一致するアプローチを選択します。
図:適切な実装パスを選択するのに役立つ視覚的なガイド
前提条件
ユニバーサルエディターを使用して AEM Forms 向け Edge Delivery Services をスムーズかつ正常に使用するには、先に進む前に次の前提条件を確認します。
アクセス要件
- GitHub アカウント:新しいリポジトリを作成する権限を持つ GitHub アカウントが必要です。このアカウントは、プロジェクトのソースコードの管理やチームとの共同作業に不可欠です。
- AEM as a Cloud Service オーサリングアクセス:AEM as a Cloud Service 環境へのオーサーレベルのアクセス権があることを確認します。このアクセス権は、フォームの作成、編集、公開に必要です。
技術要件
- Git の知識:リポジトリの複製、変更のコミット、更新のプッシュなど、基本的な Git 操作を問題なく実行できる必要があります。これらのスキルは、ソース管理とプロジェクトの共同作業の基本です。
- Web テクノロジーの理解:HTML、CSS、JavaScript の実用的な知識をお勧めします。これらのテクノロジーは、フォームのカスタマイズとトラブルシューティングの基盤です。
- Node.js(バージョン 16 以上):ローカル開発とビルドツールの実行には Node.js が必要です。システムにバージョン 16 以降がインストールされていることを確認します。
- パッケージマネージャー(npm または yarn):プロジェクトの依存関係とスクリプトを管理するには、npm(ノードパッケージマネージャー)または yarn が必要です。
推奨される背景
- AEM Sites の概念:サイト構造やコンテンツのオーサリングを含む AEM Sites の基本を理解しておくと、フォームを効果的に操作および統合できます。
- フォームデザインの原則:ユーザビリティ、アクセシビリティ、データ検証など、フォームデザインのベストプラクティスに精通していると、効果的で使いやすいフォームを作成できます。
- WYSIWYG エディターのエクスペリエンス:以前に WYSIWYG(What You See Is What You Get)エディターを使用したことがある場合は、ユニバーサルエディターの視覚的なオーサリング機能をより効率的に活用できます。
パス A:Forms で新規プロジェクトを作成
推奨: 新規プロジェクト、パイロット、概念実証イニシアチブ
AEM Forms ボイラープレートを活用して、プロジェクトの設定を高速化します。このボイラープレートは、アダプティブフォームブロックをシームレスに統合するすぐに使用できるテンプレートを提供し、AEM サイト内でフォームを迅速に作成およびデプロイできます。
概要
統合フォームを使用して新規プロジェクトを正常に起動するには、次の操作が必要です。
- AEM Forms ボイラープレートテンプレートを使用して、GitHub リポジトリを作成します。
- AEM コード同期を設定して、AEM とリポジトリ間のコンテンツ同期を自動処理します。
- GitHub プロジェクトと AEM 環境間の接続を設定します。
- 新しい AEM サイトを確立して公開します。
- ユニバーサルエディターを使用してフォームを追加および管理します。
次の節では、各手順を詳細にガイドし、スムーズで効率的なプロジェクト設定エクスペリエンスを実現します。
-
AEM Forms ボイラープレートテンプレートにアクセス
図:事前設定済みのアダプティブフォームブロックを使用した AEM Forms ボイラープレートリポジトリ -
リポジトリを作成
- このテンプレートを使用/新規リポジトリを作成 をクリックします
図:テンプレートを使用した新規リポジトリの作成 -
リポジトリ設定を指定
- 所有者:GitHub アカウントまたは組織を選択します
- リポジトリ名:わかりやすい名前(例:
my-forms-project
)を選択します - 表示:「パブリック」(Edge Delivery Services の場合に推奨)を選択します
- 「リポジトリを作成」をクリックします
図:パブリック表示を使用した新規リポジトリの設定
検証: AEM Forms ボイラープレートテンプレートに基づく新規 GitHub リポジトリがあることを確認します。
AEM コード同期は、AEM オーサリング環境と GitHub リポジトリ間でコンテンツの変更を自動的に同期します。
-
GitHub アプリをインストール
-
アクセス権限を設定
- 「選択したリポジトリのみ」を選択します
- 新しく作成したリポジトリを選択します
- 「保存」をクリックします。
図:リポジトリ固有の権限を持つ AEM コード同期のインストール
チェックポイント: AEM コード同期がインストールされ、リポジトリにアクセスできるようになりました。
fstab.yaml
ファイルは、GitHub リポジトリを AEM オーサリング環境に接続し、コンテンツを同期します。
-
リポジトリに移動
- 新しく作成した GitHub リポジトリに移動します
- AEM Forms ボイラープレートファイルが表示されます
-
fstab.yaml ファイルを作成
- ルートディレクトリで ファイルを追加/新規ファイルを作成 をクリックします
- ファイル名を
fstab.yaml
にします
図:fstab.yaml 設定ファイルの作成 -
AEM 接続の詳細を追加
次の設定をコピー&ペーストして、プレースホルダーを置き換えます。
code language-yaml mountpoints: /: https://<aem-author>/bin/franklin.delivery/<owner>/<repository>/main
置換:
<aem-author>
:AEM as a Cloud Service オーサー URL(例:author-p12345-e67890.adobeaemcloud.com
)<owner>
:GitHub ユーザー名または組織<repository>
:自分のリポジトリ名
例:
code language-yaml mountpoints: /: https://author-p12345-e67890.adobeaemcloud.com/bin/franklin.delivery/mycompany/my-forms-project/main
図:AEM 統合用のマウントポイントの設定 -
設定をコミット
- 「AEM 統合設定を追加」コミットメッセージを追加します
- 「新規ファイルをコミット」をクリックします
図:fstab.yaml 設定のコミット
検証: AEM への GitHub リポジトリ接続を確認します。
code language-none |
---|
|
-
AEM Sites コンソールにアクセス
- AEM as a Cloud Service オーサリングインスタンスにログインします
- Sites に移動します
図:AEM Sites コンソールへのアクセス -
サイトの作成を開始
- 作成/テンプレートからサイト をクリックします
図:テンプレートからの新しいサイトの作成 -
Edge Delivery Services テンプレートを選択
- Edge Delivery Services サイト テンプレートを選択します
- 「次へ」をクリックします。
図:Edge Delivery Services サイトテンプレートの選択note note NOTE テンプレートが使用できませんか? Edge Delivery Services テンプレートが表示されない場合は、次の手順に従います。 - 「読み込み」をクリックして、テンプレートをアップロードします
- GitHub リリースからテンプレートをダウンロードします
-
サイトを設定
次の情報を入力します。
table 0-row-3 1-row-3 2-row-3 3-row-3 フィールド 値 例 サイトのタイトル サイトのわかりやすい名前 「マイ Forms プロジェクト」 サイト名 URL のわかりやすい名前 「my-forms-project」 GitHub URL 自分のリポジトリ URL https://github.com/mycompany/my-forms-project
図:GitHub 統合を使用した新しい AEM サイトの設定 -
サイト作成を完了
- 設定をレビューします
- 「作成」をクリックします。
図:サイト作成の確認成功です。 AEM サイトが作成され、GitHub に接続されました。
-
ユニバーサルエディターで開く
- Sites コンソールで、新しいサイトを見つけます
index
ページを選択します。- 「編集」をクリックします
図:編集用にサイトを開くユニバーサルエディターが新しいタブで開き、WYSIWYG オーサリング機能が表示されます。
図:WYSIWYG 編集用にユニバーサルエディターで開いたサイト
検証: AEM サイトでフォームオーサリングの準備が整ったことを確認します。
公開すると、サイトがグローバルアクセス用の Edge Delivery Services で使用できます。
-
Sites コンソールからクイック公開
- AEM Sites コンソールに戻ります
- サイトページを選択します(または Ctrl+A キーですべて選択します)
- 「クイック公開」をクリックします
図:クイック公開用のページの選択 -
公開を確認
- 確認ダイアログで「公開」をクリックします
図:公開アクションの確認代替:「公開」ボタンを使用して、ユニバーサルエディターから直接公開することもできます。
図:ユニバーサルエディターからの直接公開 -
ライブサイトにアクセス
現在、サイトは次の場所で運用されています。
code language-none https://<branch>--<repo>--<owner>.aem.page/content/<site-name>/
URL 構造の説明:
<branch>
:GitHub 分岐(通常はmain
)<repo>
:自分のリポジトリ名<owner>
:GitHub ユーザー名または組織<site-name>
:自分の AEM サイト名
例:
code language-none https://main--my-forms-project--mycompany.aem.page/content/my-forms-project/
検証: サイトが Edge Delivery Services で運用されていることを確認します。
note tip |
---|
TIP |
URL パターン: |
|
次へ:最初のフォームの作成
パス B:既存のプロジェクトへの Forms の追加
次に最適: Edge Delivery Services を使用した既存の AEM Sites
Edge Delivery Services を使用した AEM プロジェクトが既にある場合は、アダプティブフォームブロックを統合してフォーム機能を追加できます。
パス B の前提条件
既存の AEM プロジェクトにフォームを統合するには、次の前提条件を満たしていることを確認します。
- AEM ボイラープレート XWalk を使用して作成された既存の AEM プロジェクトがある。
- ローカル開発環境が設定されている
- プロジェクトリポジトリへの Git アクセス権があり、必要に応じて複製、変更、プッシュできる。
次のガイドでは、既存のプロジェクトにフォーム機能を追加するための構造化されたアプローチについて説明します。各手順は、ユニバーサルエディター環境内でシームレスな統合と最適な機能を確保するように設計されています。
概要
次の高度な手順を完了します。
- アダプティブフォームブロックファイルをプロジェクトにコピーします。
- フォームコンポーネントを認識してサポートするように、プロジェクトの設定を更新します。
- 新しいファイルとコーディングパターンに対応するように、ESLint ルールを調整します。
- プロジェクトを作成し、変更をリポジトリにコミットします。
-
ローカルプロジェクトに移動
code language-bash cd /path/to/your/aem-project
-
AEM Forms ボイラープレートから必要なファイルをダウンロード
これらのファイルを AEM Forms ボイラープレートリポジトリからコピーします。
table 0-row-3 1-row-3 2-row-3 3-row-3 ソース 宛先 目的 blocks/form/
blocks/form/
コアフォーム機能 scripts/form-editor-support.js
scripts/form-editor-support.js
ユニバーサルエディターの統合 scripts/form-editor-support.css
scripts/form-editor-support.css
エディターのスタイル設定 -
エディターのサポートを更新
/scripts/editor-support.js
ファイルを AEM Forms ボイラープレートの editor-support.js に置き換えます
検証: フォームブロックファイルがプロジェクト内にあることを確認します。
-
セクションモデルを更新
/models/_section.json
を開き、フィルターにフォームコンポーネントを追加します。code language-json { "filters": [ { "id": "section", "components": [ "text", "image", "button", "form", "embed-adaptive-form" ] } ] }
この処理の内容: ユニバーサルエディターのコンポーネントピッカーでフォームコンポーネントを有効にします。
検証: フォームコンポーネントがユニバーサルエディターに表示されることを確認します。
この手順の理由: フォーム固有のファイルからのリンティングエラーを防ぎ、適切な検証ルールを設定します。
-
.eslintignore を更新
/.eslintignore
に次の行を追加します。code language-bash # Form block rule engine files blocks/form/rules/formula/* blocks/form/rules/model/* blocks/form/rules/functions.js scripts/editor-support.js scripts/editor-support-rte.js
-
.eslintrc.js を更新
/.eslintrc.js
のrules
オブジェクトに次のルールを追加します。code language-javascript { "rules": { // Existing rules... // Form component cell limits 'xwalk/max-cells': ['error', { '*': 4, // default limit form: 15, wizard: 12, 'form-button': 7, 'checkbox-group': 20, checkbox: 19, 'date-input': 21, 'drop-down': 19, email: 22, 'file-input': 20, 'form-fragment': 15, 'form-image': 7, 'multiline-input': 23, 'number-input': 22, panel: 17, 'radio-group': 20, 'form-reset-button': 7, 'form-submit-button': 7, 'telephone-input': 20, 'text-input': 23, accordion: 14, modal: 11, rating: 18, password: 20, tnc: 12 }], // Disable this rule for forms 'xwalk/no-orphan-collapsible-fields': 'off' } }
検証: ESLint がフォームコンポーネントで動作することを確認します。
-
依存関係をインストールおよびビルド
code language-bash # Install any new dependencies npm install # Build component definitions npm run build:json
この処理の内容:
- フォームコンポーネントを使用して
component-definition.json
を更新します - フォームモデルを使用して
component-models.json
を生成します - フィルタリングルールを使用して
component-filters.json
を作成します
- フォームコンポーネントを使用して
-
生成されたファイルを検証
プロジェクトルート内の次のファイルにフォーム関連オブジェクトが含まれていることを確認します。
component-definition.json
component-models.json
component-filters.json
-
変更のコミットとプッシュ
code language-bash git add . git commit -m "Add Adaptive Forms Block integration" git push origin main
検証: フォームの機能がプロジェクトに含まれていることを確認します。
次へ:最初のフォームの作成
最初のフォームの作成
この節の対象読者:
この節は、パス A(新規プロジェクト)またはパス B(既存のプロジェクト)のいずれかのユーザーに関連します。
これで、プロジェクトにフォーム作成機能が追加され、ユニバーサルエディターの直感的な WYSIWYG オーサリング環境を使用して最初のフォームを作成する準備が整いました。次の手順では、AEM サイト内でフォームを設計、設定、公開するための構造化されたアプローチを示します。
概要
ユニバーサルエディターでフォームを作成するプロセスは、次のいくつかの主要なステージで構成されています。
-
アダプティブフォームブロックを挿入
まず、選択したページにアダプティブフォームブロックを追加します。 -
フォームコンポーネントを追加
テキストフィールド、ボタン、その他の入力要素などのコンポーネントを挿入して、フォームに入力します。 -
コンポーネントのプロパティを設定
フォームの要件に合わせて、各コンポーネントの設定とプロパティを調整します。 -
フォームをプレビューおよびテスト
プレビュー機能を使用して、公開前にフォームの外観と動作を検証します。 -
更新したページを公開
問題がなければ、ページを公開して、エンドユーザーがフォームを使用できるようにします。
次の節では、各手順を詳しく説明し、スムーズで効果的なフォーム作成エクスペリエンスを実現します。
-
ユニバーサルエディターでページを開く
- AEM の Sites コンソールに移動します
- フォームを追加するページ(例:
index
)を選択します - 「編集」をクリックします
WYSIWYG 編集用にユニバーサルエディターでページが開きます。
-
アダプティブフォームコンポーネントを追加
- コンテンツツリー パネル(左側のサイドバー)を開きます
- フォームを追加するセクションに移動します
- 追加(+)アイコンをクリックします
- コンポーネントリストから アダプティブフォーム を選択します
図:ページへのアダプティブフォームブロックの追加
検証: 空のフォームコンテナがあることを確認します。
-
フォームブロックに移動
- コンテンツツリーで、新しく追加したアダプティブフォームセクションを見つけます
図:コンテンツツリーのアダプティブフォームブロック -
フォームコンポーネントを追加
コンポーネントを追加するには、次の 2 つの方法があります。
方法 A:クリックして追加
- フォームセクションの 追加(+)アイコンをクリックします
- アダプティブフォームコンポーネント リストからコンポーネントを選択します
方法 B:ドラッグ&ドロップ
- コンポーネントパネルからフォームに直接コンポーネントをドラッグします
図:フォームへのコンポーネントの追加推奨されるスターターコンポーネント:
- テキスト入力(名前、メール用)
- テキスト領域(メッセージ用)
- 送信ボタン
-
コンポーネントのプロパティを設定
-
任意のフォームコンポーネントを選択します
-
プロパティ パネル(右側のサイドバー)を使用して、次を設定します。
- ラベルとプレースホルダー
- 検証ルール
- 必須のフィールド設定
図:コンポーネントのプロパティの設定 -
-
フォームをプレビュー
フォームは次のようになります。
図:ユニバーサルエディターで作成されたフォームの例
検証: フォームの公開準備が整っていることを確認します。
note important |
---|
IMPORTANT |
変更を行ったらページを公開して、ブラウザーで更新を確認します。 |
-
ユニバーサルエディターから公開
- ユニバーサルエディターの「公開」ボタンをクリックします
図:ユニバーサルエディターからのフォームの公開 -
公開を確認
- 確認ダイアログで「公開」をクリックします
図:公開の確認アクション公開を確認する成功メッセージが表示されます。
図:成功した公開の確認 -
ライブフォームを表示
現在、フォームは次の場所で運用されています。
code language-none https://<branch>--<repo>--<owner>.aem.page/content/<site-name>/
URL の例:
code language-none https://main--my-forms-project--mycompany.aem.page/content/my-forms-project/
図:Edge Delivery Services で公開されたフォームページ
おめでとうございます。 これで、フォームが運用され、送信を収集する準備が整いました。
次の手順
これで、作業用フォームが作成されたので、次の操作を行うことができます。
- CSS および JavaScript ファイルを編集して スタイルをカスタマイズ
- 検証ルールや条件付きロジックなどの 高度なフォーム機能を追加
- 反復作業を高速化するために ローカル開発環境を設定
- 特定のユースケース向けに スタンドアロンフォームを作成
ローカル開発環境の設定
次に最適: フォームのスタイルと動作をカスタマイズする開発者
ローカル開発環境を使用すると、公開サイクルを経由することなく、変更を行ってすぐに結果を確認できます。
-
AEM CLI をインストール
AEM CLI は、ローカル開発タスクを簡素化します。
code language-bash npm install -g @adobe/aem-cli
-
リポジトリを複製
code language-bash git clone https://github.com/<owner>/<repo> cd <repo>
<owner>
と<repo>
を実際の GitHub の詳細に置き換えます。 -
ローカル開発サーバーを起動
code language-bash aem up
これにより、ホットリロード機能を備えたローカル サーバーが起動します。
-
カスタマイズを実行
- フォームのスタイルと動作については、
blocks/form/
ディレクトリ内のファイルを編集します - スタイルについては、
form.css
を変更します - 動作については、
form.js
を更新します
ブラウザーで
http://localhost:3000
にアクセスして、変更をすぐに確認 します - フォームのスタイルと動作については、
-
変更をデプロイ
code language-bash git add . git commit -m "Custom form styling" git push origin main
変更は、次の場所で確認できます。
- プレビュー:
https://<branch>--<repo>--<owner>.aem.page/content/<site-name>
- 実稼動環境:
https://<branch>--<repo>--<owner>.aem.live/content/<site-name>
- プレビュー:
トラブルシューティング
よくある問題と解決策
問題: ビルドの失敗またはリンティングエラー
解決策 1:リンティングエラーを処理
リンティングエラーが発生した場合:
-
プロジェクトルートにある
package.json
を開きます -
次の
lint
スクリプトを見つけます。code language-json "scripts": { "lint": "npm run lint:js && npm run lint:css" }
-
一時的に次のリンティングを無効にします。
code language-json "scripts": { "lint": "echo 'skipping linting for now'" }
-
変更をコミットしてプッシュします
解決策 2:モジュールパスエラー
「モジュール「/scripts/lib-franklin.js」へのパスを解決できません」と表示される場合:
-
blocks/form/form.js
に移動します。 -
import 文を更新します。
code language-javascript // Change this: import { ... } from '/scripts/lib-franklin.js'; // To this: import { ... } from '/scripts/aem.js';
問題: フォーム送信が機能しない
解決策:
- 送信ボタンコンポーネントがあることを確認します
- フォームアクションの URL 設定を確認します
- フォームの検証ルールを確認します
- 最初にプレビューモードでテストします
問題: スタイルの問題
解決策:
blocks/form/
内の CSS ファイルパスを確認します- ブラウザーキャッシュを消去します
- CSS 構文を検証します
- ローカル開発環境でテストします
問題: ユニバーサルエディターにフォームコンポーネントが表示されない
解決策:
- AEM コード同期がインストールおよび実行されていることを検証します
fstab.yaml
に正しい AEM オーサー URL が含まれていることを確認します- AEM インスタンスで早期アクセスが有効になっていることを確認します
component-definition.json
にフォームコンポーネントが含まれていることを確認します
問題: 公開後に変更が表示されない
解決策:
- CDN キャッシュの更新を待機します
- ブラウザーキャッシュを確認します(匿名/プライベートモードを試します)
- 正しい URL 形式が使用されていることを検証します