カスタムアダプティブフォームのテンプレートの作成 creating-a-custom-adaptive-form-template
前提条件 prerequisites
-
AEM ページテンプレートおよびアダプティブフォームオーサリングに関する知識
-
AEMについて クライアント側ライブラリ
アダプティブフォームテンプレート adaptive-form-template
アダプティブフォームテンプレートは、アダプティブフォームの作成に使用される特定のプロパティとコンテンツ構造を持つ特殊な AEM ページテンプレートです。このテンプレートのレイアウト、スタイル、基本的な初期コンテンツ構造は事前に設定されています。
フォームを作成すると、オリジナルテンプレートのコンテンツ構造が変更された場合でも、フォームには反映されません。
デフォルトのアダプティブフォームテンプレート default-adaptive-form-templates
AEM QuickStart は、次のアダプティブフォームテンプレートを提供します。
- 基本:タブが左側にあるレイアウトを使用して複数タブのアダプティブフォームを作成し、任意の順序でタブにアクセスできます。
- Acrobat Signの基本:複数のタブとウィザードを含むフォームを作成できます。 タブが左側にあるレイアウトを使用して、任意の順序でタブにアクセスできます。 署名と検証には Adobe Document Cloud eSign サービスを使用します。
- 空のテンプレート:ヘッダー、フッター、初期コンテンツを含まないフォームを作成できます。 テキストボックス、ボタン、画像などのコンポーネントを追加できます。 空白テンプレートでは、AEM サイトページに埋め込むことができるフォームを作成します。
これらのテンプレートでは、sling:resourceType
プロパティが、対応するページのコンポーネントに設定されています。ページコンポーネントは、アダプティブフォームコンテナを含む CQ ページをレンダリングし、アダプティブフォームをレンダリングします。
次の表は、テンプレートとページコンポーネントの間の関連を列挙します。
テンプレートエディターを使用したアダプティブフォームテンプレートの作成 creating-an-adaptive-form-template-using-template-editor
テンプレートエディターを使用して、アダプティブフォームの構造と初期コンテンツを指定できます。例えば、すべてのフォーム作成者が、登録フォーム内にテキストボックス、ナビゲーションボタン、送信ボタンをいくつか持つようにします。 作成者が他の登録フォームと一貫性のあるフォームを作成できるテンプレートを作成できます。 AEM Template Editor では、次のことができます。
- 構造レイヤーにフォームのヘッダーおよびフッターコンポーネントを追加する
- フォームの初期コンテンツを提供できます。
- テーマを指定できます。
- 送信、リセット、移動などの操作を指定できます。
詳しくは、テンプレートエディターを参照してください。
CRXDE からのアダプティブフォームテンプレートの作成 creating-an-adaptive-form-template-from-crxde
使用可能なテンプレートを使用する代わりに、テンプレートを作成してアダプティブフォームを作成することができます。 カスタムテンプレートは、アダプティブフォームのコンテナやページ要素(ヘッダーやフッターなど)を参照する様々なページコンポーネントに基づいています。
これらのコンポーネントは Web サイト向けの基本ページコンポーネントを使用して作成することができます。または、あらかじめ用意されたテンプレートで使用されるアダプティブフォームのページコンポーネントを拡張することもできます。
simpleEnrollmentTemplate などのカスタムテンプレートを作成するには、次の手順を実行します。
-
オーサーインスタンスで CRXDE Lite に移動します。
-
/apps ディレクトリの下に、アプリケーションのフォルダー構造を作成します。 例えば、アプリケーション名が mycompany の場合は、この名前のフォルダーを作成します。 通常、アプリケーションフォルダーには、components、configuration、templates、src および installation ディレクトリが含まれます。 この例では、components、configuration、templates の各フォルダーを作成します。
-
/libs/fd/af/templates フォルダーに移動します。
-
simpleEnrollmentTemplate
ノードをコピーします。 -
/apps/mycompany/templates フォルダーに移動します。 右クリックし、「 」を選択します。 貼り付け.
-
必要に応じて、コピーしたテンプレートノードの名前を変更します。 例えば、enrollment-template などに変更します。
-
/apps/mycompany/templates/enrollment-template に移動します。
-
jcr:content
ノードのjcr:title
プロパティとjcr:description
プロパティを変更し、コピー元のテンプレートと区別できるようにします。 -
変更したテンプレートの
jcr:content
ノードには、guideContainer
とguideformtitle
のコンポーネントが含まれます。guideContainer
はアダプティブフォームを格納するコンテナです。guideformtitle
コンポーネントは、アプリケーション名や説明などを表示します。guideformtitle
の代わりに、カスタムコンポーネントまたはparsys
コンポーネントを含めることができます。例えば、guideformtitle
を削除して、カスタムコンポーネントまたはparsys
コンポーネントのノードを含めることができます。コンポーネントのsling:resourceType
プロパティの参照先が、そのコンポーネントになっていることを確認してください。ページcomponent.jsp
ファイルでも同様に定義されます。 -
/apps/mycompany/templates/enrollment-template/jcr:content に移動します。
-
「プロパティ」タブを開き、
cq:designPath
プロパティの値を /etc/designs/mycompany に変更します。 -
次に、
cq:Page
タイプに /etc/designs/mycompany のノードを作成します。
アダプティブフォームのページコンポーネントの作成 create-an-adaptive-form-page-component
テンプレートはページコンポーネント/libs/fd/af/components/page/base を参照するので、カスタムテンプレートはデフォルトテンプレートと同じスタイルを持ちます。 コンポーネントの参照は、/apps/mycompany/templates/enrollment-template/jcr:content ノードで定義された sling:resourceType
プロパティで検索できます。ベースはコア製品のコンポーネントのため、変更を加えないでください。
-
/apps/mycompany/templates/enrollment-template/jcr:content のノードに移動し、
sling:resourceType
プロパティの値を /apps/mycompany/components/page/enrollmentpage に変更します。 -
/libs/fd/af/components/page/base のノードを /apps/mycompany/components/page フォルダーにコピーします。
-
コピーしたコンポーネントの名前を
enrollmentpage
に変更します。 -
(コンテンツページをすでに持っている場合に限ります) 自分の web サイトに
contentpage
コンポーネントがすでに存在する場合、次の手順(a-d)を実行します。自分の Web サイトにcontentpage
コンポーネントが存在しない場合は、resourceSuperType
プロパティを OOTB の基本ページにポイントしたままにすることができます。-
enrollmentpage
ノードの場合、sling:resourceSuperType
プロパティの値を mycompany/components/page/contentpage に設定します。contentpage
コンポーネントは、自分のサイトの基本ページコンポーネントです。他のページコンポーネントで拡張することができます。enrollmentpage
の下で、head.jsp
、content.jsp
、library.jsp
を除くスクリプトファイルを削除します。このケースではcontentpage
であるsling:resourceSuperType
コンポーネントに、このようなスクリプトすべてが含まれます。ナビゲーションバーやフッターなどを含むヘッダー類は、contentpage
コンポーネントから継承されます。 -
head.jsp
ファイルを開きます。この JSP ファイルには
<cq.include script="library.jsp"/>
行が含まれます。library.jsp
ファイルには、guide.theme.simpleEnrollment
のクライアントライブラリが含まれ、その中にアダプティブフォームのスタイル設定が含まれています。enrollmentpage
のページコンポーネントは専用のhead.jsp
ファイルがあり、contentpage
コンポーネントのhead.jsp
ファイルをオーバーライドします。 -
enrollmentpage
コンポーネント用のhead.jsp
ファイルに、contentpage
コンポーネント用のhead.jsp
ファイルのすべてのスクリプトを含めます。 -
content.jsp
スクリプトの中に、追加のページコンテンツまたはページがレンダリングされる際に含まれる他のコンポーネントへの参照を追加することができます。例えば、applicationformheader
カスタムコンポーネントを追加する場合、JSP ファイルのコンポーネントに次の参照を追加します。<cq:include path="applicationformheader" resourceType="mycompany/components/applicationformheader"/>
同様に、テンプレートのノード構造に
parsys
コンポーネントを追加する場合、カスタムコンポーネントも含めます。
-
アダプティブフォームのクライアントライブラリの作成 creating-an-adaptive-form-client-library
新しいテンプレート用の enrollmentpage
コンポーネントの head.jsp
ファイルには、guide.theme.simpleEnrollment
クライアントライブラリが含まれます。デフォルトのテンプレートもこのクライアントライブラリを使用します。 次のいずれかの方法を使用して、新しいテンプレートのスタイルを変更します。
- カスタムテーマを定義し、デフォルトのテーマ
guide.theme.simpleEnrollment
をカスタムテーマで置き換えます。 - /etc/designs/mycompany の下に新しいクライアントライブラリを定義します。 JSP ページのデフォルトのテーマエントリの後にクライアントライブラリを含めます。 このクライアントライブラリに、オーバーライドされたすべてのスタイルと、追加の Java Script ファイルを含めます。