基本事項

ECCUBE3ではフォームの生成に、Symphony2コンポーネントのFormFactoryを活用します。
FormFactoryは以下のようなコードで$app[‘form.factory’]に収められていますのでいつでも取り出して使用できます。

Controller内ではFormFactoryのcreateBuilderによってBuilderを生成しています。

具体的なカスタマイズ部分

それでは問い合わせフォームに項目を追加するコードを見ていきます。

今回は「問い合わせ内容」という選択式項目(セレクトボックス)を作成します。

1.ContactType.php

ContactType.phpはFormFactoryが利用するフォームの項目定義クラスです。

buildFormメソッドが実装されていますので、以下のように書き換えます。
最後のaddで「type : 問い合わせ種類」という項目定義を追加しています。

2.Contact/index.twig

問い合わせフォーム本体のテンプレートファイルです。
ContactTypeで定義した問い合わせ種類を追加表示します。

問い合わせフォーム

このように表示されます。

3.Contact/confirm.twig

確認画面のテンプレートファイルです。
ContactTypeで定義した問い合わせ種類を追加表示します。

問い合わせ確認画面

自動で必須マークが付く上、選んだ項目もちゃんと選択されています。

4.Mail/contact_mail.twig

あとはメール送信用のテンプレートへ{{ data.type }}を追加してやるだけです。
このあたりの書き方はフォームのvalue値を何にしているかによるので、おまかせします。

基本的にはこのように書けば良いでしょう。

 

以上で問い合わせフォームと確認画面への項目追加カスタマイズは完了です。
ぜひECCUBE3をお使いの方は試してみてください。

自分でファイルを編集するのは不安があるという方は、
弊社U-Mebiusでもこちらのカスタマイズを承っておりますのでぜひご連絡ください。

複数選択のチェックボックス等にも応用可能です。

関連するカスタマイズ

お届け可能日設定がない商品注文時にセレクトボックスを表示しない方法... お届け可能日の指定ができないのに選択ボックス表示されるのがいやだったので、いつもカスタマイズしております。 Twigテンプレートに2行書き足すだけでカスタマイズできますので、EC-CUBE3をご利用の方はぜひお試しください。 Shopping/index.twigで上のようになっているのを下...
管理者へ注文メール・問い合わせメールが届かない時の修正箇所... EC-CUBE3.0系では管理者へ注文メール・問い合わせメールが届かないという問い合わせがあります。 これはメール送信を担っているファイルである/src/Eccube/Service/MailService.php を修正することで解決できる可能性が高いです。 MailServiceファイ...
商品ナビゲーションに「最初へ」「最後へ」ボタンを追加... 今回ご紹介するのは、商品一覧のナビゲーションに「最初へ」「最後へ」ボタンリンクを追加するカスタマイズです。 商品数が多いECサイトではぜひ導入したいですよね。 こういう表示を目指します。 まず、商品リストのページテンプレートはProduct/list.twigです。 list...
問い合わせフォーム等でinput、selectにclassを設定する方法... FormType内で設定する方法 フォームの各項目はEccube/Form/Type内にあるFormTypeクラスで設定されています。 ContactType.phpの中では次のように「問い合わせ内容」項目が設定されています。 これにクラス名を付けるにはattr配列を付け足...

弊社はEC-CUBE公式インテグレートパートナーです。