ECCUBE3&4 新しい フォーム 作成の手順

ECCUBE3&4にて新しいフォームを独自に作るときに必要となるであろう手続きを記しておきます。

symfony Documentation Formsより基本的なフォームの作り方をご覧ください。(注意書きが出ると思いますが、使用バージョン3.Xの場合には表示を切り替えてください)

Built-in Field Typesより使用できるField Typeを参照してください。

フォームはメール送信も行いますのでこちらも参考にしてください。How to Send an Email


(新規作成)と(追記)を追記しました。

フォームタイプ追加(新規作成)

src/Eccube/Form/Type/Front/サンプルType.php

フォームタイプの呼び出し(追記)
作成したフォームタイプを読み込む

src/Eccube/ServicePlovider/EccubeServiceProvider.php

新フォームのコントローラー(新規作成)

src/Eccube/Controller/サンプルController.php

どのようなフォームにしたいかここで決めます

新フォームページのマッチング(追記)

src/Eccube/ControllerProvider/FrontControllerPlovider.php

新フォームのアドレスへアクセスされたときに新フォームのコントローラーを呼び出します。

フォームテンプレート追加(新規作成)

app/template/default/サンプル/index.twig

フォーム入力画面のトップページ部分

Ecube4からapp/template/にadmin,defaultの他user_dataフォルダがあります。ログイン中のページや常時SSL、新規追加ページによって使い分けしていくようです。

フォーム確認画面テンプレート追加(新規作成)

app/template/default/サンプル/confirm.twig

confirm.twigの方には robotsにnoindex

フォーム完了画面テンプレート追加(新規作成)

app/template/default/サンプル/complete.twig

complete.twigの方には robotsにnoindex

フォームのメールテンプレート追加(新規作成)

app/template/default/Mail/サンプルmail.twig

自動返信や受信内容の文面を決めます。

メールテンプレート追加呼び出し(追記)

src/Eccube/Service/MailService.php

入力されたフォーム内容をメールテンプレートに合わせ メール送信を実行する部分

管理画面に新しいフォームが管理できるようにデーターベースに追加

データーベースにログインして

dtb_page_layoutのテーブルへ

下記あたりの数値を追加する
device_type_id
page_name サンプルフォーム
url サンプル
file_name サンプル/index.twig
edit_flg 0

edit_flgは0,1,2と指定できる
0はレイアウト編集、ページ編集、削除
1はレイアウト編集、ページ編集
2はレイアウト編集
が管理画面で操作できるようになる。

また作成日付を忘れないようにしましょう。
無記入だとsitemapで日付エラーが出てしまいます。

哲学堂書店 浦山幹生