必要条件

  • AEM に関する次の知識が必要です。http://docs.adobe.com/docs/en/aem/6-1/develop/the-basics/templates.html、およびhttp://helpx.adobe.com/jp/aem-forms/6-1/introduction-forms-authoring.html
  • AEM に関する次の知識が必要です。 クライアント側のライブラリ

アダプティブフォームテンプレート

アダプティブフォームテンプレートは、アダプティブフォームの作成に使用される特定のプロパティとコンテンツ構造を持つ特殊な AEM ページテンプレートです。このテンプレートのレイアウト、スタイル、基本的な初期コンテンツ構造は事前に設定されています。

フォームを作成すると、オリジナルテンプレートのコンテンツ構造が変更された場合でも、フォームには反映されません。

デフォルトのアダプティブフォームテンプレート

AEM QuickStart では、次のアダプティブフォームテンプレートを提供します。

  • サーベイのテンプレート:複数の列が設定されたレスポンシブレイアウトを使用して単一ページのアダプティブフォームを作成します。フォームを表示させる画面領域に応じてレイアウトは自動で調整されます。
  • 登録テンプレート:ウィザードのレイアウトを使用して複数の手順を備えたアダプティブフォームを作成します。このレイアウトでは、各手順の完了に必要な式を指定できます。指定した式は、次の手順にウィザードを進める前に検証されます。
  • タブ付き登録テンプレート:複数のタブを備えたアダプティブフォームを作成します。タブ左側のレイアウトを使用し、任意の順序でタブにアクセスできます。

また、AEM は次にある AEM forms アドオンを使用して高度な登録テンプレートも提供します。location /libs/fd/afaddon/templates/advancedEnrollmentTemplate

このテンプレートには、値 fd/af/templates を持つ追加の guideComponentType プロパティが含まれ、これによりアダプティブフォームで使用されていることが明示的に示されます。

これらのテンプレートでは、対応するページのコンポーネントに sling:resourceType プロパティが含まれます。ページコンポーネントは、アダプティブフォームのコンテナを含む CQ ページをレンダリングすることでアダプティブフォームをレンダリングします。

次の表では、テンプレートとページコンポーネントの関係を列挙します。

テンプレート

ページコンポーネント

/libs/fd/af/templates/surveyTemplate

/libs/fd/af/components/page/survey

/libs/fd/af/templates/simpleEnrollmentTemplate

/libs/fd/af/components/page/base

/libs/fd/af/templates/tabbedEnrollmentTemplate

/libs/fd/af/components/page/tabbedenrollment

/libs/fd/afaddon/templates/advancedEnrollmentTemplate

/libs/fd/afaddon/components/page/advancedenrollment

アダプティブフォームテンプレートの作成

利用可能なテンプレートを使う代わりに、自分でテンプレートを作成してアダプティブフォームの作成に使用することもできます。カスタムテンプレートは、アダプティブフォームのコンテナおよびヘッダーやフッターなどのページ要素を参照するさまざまなページコンポーネントに基づいています。

これらのコンポーネントは Web サイト向けの基本ページコンポーネントを使用して作成することができます。または、あらかじめ用意されたテンプレートで使用されるアダプティブフォームのページコンポーネントを拡張することもできます。

simpleEnrollmentTemplate などのカスタムテンプレートを作成するには、次の手順を実行します。

  1. 自分のオーサリングインスタンスで CRXDE Lite に移動します。

  2. /apps ディレクトリの下に、自分のアプリケーションのフォルダー構造を作成します。例えば、アプリケーションの名前が mycompany の場合、その名前のフォルダーを作成します。通常、アプリケーションフォルダーには components、configuration、templates、src、installation のディレクトリが含まれます。この例では、components、configuration、templates の各フォルダーを作成します。

  3. /libs/fd/af/templates フォルダーに移動します。

  4. simpleEnrollmentTemplate ノードをコピーします。

  5. /apps/mycompany/templates フォルダーに移動します。右クリックして貼り付けを選択します。

  6. 必要に応じて、コピーしたテンプレートノードの名前を変更します。例えば、enrollment-template などに変更します。

  7. /apps/mycompany/templates/enrollment-template
    に移動します。

  8. jcr:content ノードの jcr:title プロパティと jcr:description プロパティを変更し、コピー元のテンプレートと区別できるようにします。

  9. 変更したテンプレートの jcr:content ノードには、guideContainerguideformtitle コンポーネントが含まれます。guideContainer はアダプティブフォームを格納するコンテナです。guideformtitle コンポーネントは、アプリケーション名や説明などを表示します。

    guideformtitle の代わりに、カスタムコンポーネントまたは parsys コンポーネントを含めることができます。例えば、guideformtitle を削除して、カスタムコンポーネントまたは parsys コンポーネントのノードを含めることができます。コンポーネントの sling:resourceType プロパティの参照先が、そのコンポーネントになっていることを確認してください。また、ページ component.jsp ファイルでも同様に定義します。

  10. /apps/mycompany/templates/enrollment-template/jcr:content
    に移動します。

  11. プロパティタブを開き、cq:designPath プロパティの値を /etc/designs/mycompany に変更します。

  12. 次に、cq:Page タイプに /etc/designs/mycompany のノードを作成します。

アダプティブフォームのページコンポーネントの作成

テンプレートの参照先は /libs/fd/af/components/page/base のページコンポーネントに設定されているため、カスタムテンプレートはデフォルトのテンプレートと同じスタイルを持ちます。コンポーネントの参照は、/apps/mycompany/templates/enrollment-template/jcr:content ノードで定義されたsling:resourceType プロパティで検索できます。base はコア製品のコンポーネントのため、変更を加えないでください。

  1. /apps/mycompany/templates/enrollment-template/jcr:content のノードに移動し、 sling:resourceType プロパティの値を /apps/mycompany/components/page/enrollmentpage に変更します

  2. /libs/fd/af/components/page/base のノードを /apps/mycompany/components/page フォルダーにコピーします。

  3. コピーしたコンポーネントの名前を enrollmentpage に変更します。

  4. (コンテンツページをすでに持っている場合に限ります)自分の Web サイトにcontentpage コンポーネントがすでに存在する場合、次の手順(a-d)を実行します。自分のウェブサイトに contentpage コンポーネントが存在しない場合は、resourceSuperType プロパティを OOTB の基本ページにポイントしたままにすることができます。

    1. enrollmentpage ノードの場合、sling:resourceSuperType プロパティの値を mycompany/components/page/contentpage に設定します。contentpage コンポーネントは、自分のサイトの基本ページコンポーネントです。他のページコンポーネントで拡張することができます。enrollmentpage の下で、head.jspcontent.jsp library.jsp を除くスクリプトファイルを削除します。このケースでは contentpage である sling:resourceSuperType コンポーネントに、このようなスクリプトすべてが含まれます。ナビゲーションバーやフッターなどを含むヘッダー類は、contentpage コンポーネントから継承されます。

    2. head.jsp ファイルを開きます。

      この JSP ファイルには <cq.include script="library.jsp"/> 行が含まれます。

      library.jsp ファイルには、guide.theme.simpleEnrollment のクライアントライブラリが含まれ、その中にアダプティブフォームのスタイル設定が含まれています。


      enrollmentpage のページコンポーネントは専用のhead.jspファイルがあり、contentpage コンポーネントの head.jsp ファイルをオーバーライドします。

    3. enrollmentpage コンポーネント用の head.jsp ファイルに、contentpage コンポーネント用の head.jsp ファイルのすべてのスクリプトを含めます。

    4. content.jsp スクリプトの中に、追加のページコンテンツまたはページがレンダリングされる際に含まれる他のコンポーネントへの参照を追加することができます。例えば、applicationformheader カスタムコンポーネントを追加する場合、JSP ファイルのコンポーネントに次の参照を追加します。

      <cq:include path="applicationformheader" resourceType="mycompany/components/applicationformheader"/>

      同様に、テンプレートのノード構造に parsys コンポーネントを追加する場合、カスタムコンポーネントも含めます。

アダプティブフォームのクライアントライブラリの作成

新しいテンプレート用の enrollmentpage コンポーネントの head.jsp ファイルには、guide.theme.simpleEnrollment クライアントライブラリが含まれます。デフォルトのテンプレートは、このクライアントライブラリも使用します。これらの方法のいずれかを使用して、新しいテンプレートのスタイルを変更します。

  • カスタムテーマを定義し、guide.theme.simpleEnrollment のデフォルトのテーマをカスタムテーマで置き換えます。
  • /etc/designs/mycompany の下に新しいクライアントライブラリを定義します。JSP ページで、デフォルトのテーマのエントリの後にクライアントライブラリを含めます。このクライアントライブラリに、オーバーライドされたすべてのスタイルと、追加の Java Script ファイルを含めます。

注意:

アダプティブフォームのレンダリングに使用されるページコンポーネントに含まれるクライアントライブラリが、テーマによって参照されます。クライアントライブラリは、主にアダプティブフォームの外観を管理します。

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

法律上の注意   |   プライバシーポリシー