EC-CUBE3.013 お問い合わせフォームに項目を増やす

セレクトボックスと普通のテキスト欄と追加してみる

☆セレクトボックスは必須項目に
☆管理画面からセレクトボックスの内容を追加できない簡単使用

 

1.「src/Eccube/Form/Type/Front/ContactType.php」に追記

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
            ->add('onumber', 'text', array(
                'label'     => 'ご注文番号',
                'required' => false,
            ))

            ->add('sentaku', 'choice', array(
        			'choices'  => array(
            			'1' => 'お問い合わせ',
            			'2' => 'ご要望'
					),
                'label'     => 'お問い合わせ種類',
                'required' => true,
            ));
    }

2.「app/template/default/Contact/index.twig」に追記

	<dl id="top_box__sentaku">
		<dt>{{ form_label(form.sentaku) }}</dt>
		<dd class="form-group">
		{{ form_widget(form.sentaku) }}
		{{ form_errors(form.sentaku) }}
		</dd>
	</dl>
                                                                
	<dl id="top_box__onumber">
		<dt>{{ form_label(form.onumber) }}</dt>
		<dd class="form-group">
		{{ form_widget(form.onumber) }}
		{{ form_errors(form.onumber) }}
		</dd>
	</dl>

3.「app/template/default/Contact/confirm.twig」に追記

	<dl id="top_box__sentaku">
		<dt>{{ form_label(form.sentaku) }}</dt>
		<dd class="form-group">
		{{ form_widget(form.sentaku) }}
		</dd>
	</dl>

	<dl id="confirm_box__onumber">
		<dt>{{ form_label(form.onumber) }}</dt>
		<dd>
		<div class="form-group">
		{{ form_widget(form.onumber) }}
		</div>
		</dd>
	</dl>

4.「app/template/default/Mail/contact_mail.twig」に追記

	お問い合わせ種類:{% if data.sentaku == 1 %}お問い合わせ{% elseif data.sentaku == 2 %}ご要望{% endif %}

	ご注文番号:{{ data.onumber }}

↓かなり参考にさせていただきました!
問い合わせフォームと確認画面に項目追加する方法

Symfony2のコーディング規約

クセでつい忘れがちななのが以下の規約
昔からタブ愛用者だったから…
あと「{」の位置も、つい If( $aaa ){ ってくっつけて書きそう
基本からNGです

■インデントには、空白4つを使い、タブを使ってはなりません
■行の終端の改行には LF(0x0A)を使います
■return 文の前には空行を1行開けます
■クラス宣言、メソッド宣言、関数宣言に使う波括弧は、それぞれ独立した1行に記述します
■条件文と開き波括弧との間には空白を1つ開け、改行してはなりません
■クラス、メソッド、プロパティのアクセス修飾子を明示的に宣言します(var を使うことは禁止されています)
■定数には大文字を使い、複数の単語をアンダースコアで結合します
■1つのファイルには、1つのクラスのみを定義します

Symfony Japan コーディング規約はこちら