EC-CUBEメールフォーム追加

EC-CUBEには問い合わせフォームがシステム組み込まれていますが、複数のメール問い合わせフォームがあると便利なので、別のメール問い合わせフォームを追加してみました。

今回の方法は、PHPでページ追加をしたり、既存のメールフォームにPHPタグの条件分岐などの方法でも可能なような気がしたのですが、
作業時間をなるべくかけないようにし、共通のクラスを利用はするものの管理しやすいプラグイン的なテンプレートを利用したほうが増改築もしやすいかと考えまして、
テンプレートファイルを追加する方向で、複数のメール問い合わせフォームを追加してみました。

まずはデフォルトのメールフォーム機能を調べていきます。

1⇒ お問い合わせフォームは公開フォルダ以下のcontact/index.phpが

2⇒ page_extends/contact/LC_Page_Contact_Ex.php がrequireされています

3⇒ data\class_extends\page_extends\contact\LC_Page_Contact_Ex.phpではpages/contact/LC_Page_Contact.phpがrequireされ

4⇒ data\class\pages\contact\LC_Page_Contact.phpのLC_Page_Contactクラスでは、メールフォーム内容の文字の変換、エラーチェック、メール送信が行われているようです

5⇒ data\Smarty\templates\default\contactではSmartyというPHPテンプレートエンジンが使用されているのでWEBデザイン側のHTMLソースコードは拡張子tplファイルで編集可能です

6⇒ 構造を追跡してみると/LC_Page_Contact.phpで

$this->tpl_mainpage = ‘contact/index.tpl’;
$this->tpl_title = ‘お問い合わせ(入力ページ)’;
$this->tpl_page_category = ‘contact’;

のようにお問い合わせページのテンプレートが参照されていることがわかります。

お問い合わせフォームは会員登録などと違ってデータベースとの連携がないので、項目をある程度自由に増減カスタマイズが可能です。ただしPHP記述の調整にはある程度の知識が必要です。

7⇒ 一連の問い合わせフォーム構造を『contact2』として複製する

注意するべき点は、LC_Page_Contact.phpの参照するところ『$this->tpl_mainpage = ‘contact/index.tpl’;』とページカテゴリー『$this->tpl_page_category = ‘contact’;』と、他のファイルで『contact』パスをcontact2にするだけでOKだと予想しました。

8⇒ そのまま構成構造を複製して、『EC-CUBE公開URL/contact2/index.php』のパス指定でお問い合わせフォームが表示されれば、あとはSmartyフォルダ内のテンプレートをカスタマイズして、confirm.tplとcomplete.tplも同様に編集し、パス指定を変更すれば完成です。

あとは項目をカスタマイズして、エラーチェックなどを必要に応じて記述を変更して、パスなどを変更したものに修正することで追加しすることができました。

同じ要領で自動返信のメールテンプレートを複製、編集することで新たなメールフォーム追加の完了です。