ブログ名の設定は、まだ。 ネット社会の一粒の"地の塩"でありたいと思っています。

EC-CUBEの「お問い合わせ」を複製・カスタマイズして「ご相談ページ」を作ってみた。(その2)

2013年01月08日 · カテゴリ:EC-CUBEの話

この記事は、
EC-CUBEの「お問い合わせ」を複製・カスタマイズして「ご相談ページ」を作ってみた。(その1)
の続きです。
(その1)で必要な「ファイル群の複製」、「ソースの初期修正」、「DBに2つのページ登録」「とりあえずメールを飛ばしてみる」までやりましたが、次は新しい項目の作成ということで「相談フォームの項目の設定」「テンプレートのカスタマイズ」「メールテンプレートのカスタマイズ」「最終確認(完成)」というステップです。

それではまず「相談フォームの項目の設定」です。
「ご相談ページ」で新しく入力項目として加えるものを
data/class/pages/contactLC_Page_Contact_Soudan.php
に設定します。 ソースの155目あたりに function lfInitParam(&$objFormParam) { で始まる部分で、すでに既存の質問項目が複数あると思います。 そこに、例として簡単ですが、相談内容(テキスト)を、必須項目として新設すると仮定します。

$objFormParam->addParam("相談内容", 'sodan_txt', STEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK'));

↑こんな感じ。
相談内容は必須項目なので’EXIST_CHECK’を入れています。

この入力項目には下記のようなチェックが指定できます。
1)EXIST_CHECK: 必須入力チェック、入力がなければエラー表示して入力を促す。
2)SPTAB_CHECK: スペースや、タブ、改行のみの入力に対してエラー表示。
3)MAX_LENGTH_CHECK: 入力文字数が指定以上ならエラー表示。

ついでにこのPHPでソースのもっと下に「メールの送信を行う。」とコメントがあると思います。

function lfSendMail(&$objPage) {
    $CONF = SC_Helper_DB_Ex::sfGetBasisData();
    $objPage->tpl_shopname = $CONF['shop_name'];
    $objPage->tpl_infoemail = $CONF['email02'];
    $helperMail = new SC_Helper_Mail_Ex();
    $helperMail->setPage($this);
    $helperMail->sfSendTemplateMail(
        $objPage->arrForm['email']['value'],            // to
        $objPage->arrForm['name01']['value'] .' 様',    // to_name
        5,            // template_id
(以下省略)

上記の赤くした数字を変更します。
この数字はメールのテンプレートIDのことで、新しいテンプレートを登録し、そのID番号を入れます。

新しいテンプレートの登録ですが、EC-CUBEの管理画面にログインして、システム設定>マスターデータ管理、と進んだところで、「mtb_mail_template」をドロップダウンより選択します。
すると下記のような画面が出ますので、内容はともかくまず、新しい名称で(下記では8番「ご相談受付メール」)登録します。そのID番号を上記の赤くした数字の部分を変更して書きます。

eccube

登録が終わると、同じく管理画面で、基本情報管理>メール設定と進むとそこで編集ができます。
この部分は後ほど「メールテンプレートのカスタマイズ」のところで詳しく説明します。
上記でとりあえず、「相談フォームの項目の設定」を完了しました。

次に「テンプレートのカスタマイズ」です。
カスタマイズが必要なページのテンプレートは
(1)ご相談入力ページのテンプレート
data/Smarty/templates/default(or購入したテンプレート名)/contact/soudan.tpl
(2)入力確認のテンプレート
data/Smarty/templates/default(or購入したテンプレート名)/contact/confirm_soudan.tpl
(3)ご相談完了ページのテンプレート
data/Smarty/templates/default(or購入したテンプレート名)/contact/complete_soudan.tpl
の3つです。
(そのほかにメール文のテンプレートがありますが、それは次の項目で説明します)

カスタマイズが必要なページ(1)はまず入力ページ「soudan.tpl」です。
相談内容の入力欄をHTMLで適切なところに書きます。
<textarea name=”sodan_txt” value=”<!–{$arrForm.sodan_txt.value|h|default:$arrData.sodan_txt|h}–>” style=”<!–{$arrErr.sodan_txt|sfGetErrorColor}–>; ” />

こんな感じです。ごちゃごちゃしているのは、
・sodan_txtの必須チェックします、という指定
・エラーなら※<入力項目名>が入力されていません、という文字を表示する指定
・エラーなら入力欄の地色をピンクに変更しますよ、という指定
があるからです。
他の項目も参考にして作ってみてください。

そして、次は入力確認ページ「confirm_soudan.tpl」です。
元はお問合わせの入力確認ページですから、下記のような感じでTABLEに入れ込む感じでしょうか。

<tr>
<th>ご相談内容<span>※</span><br />
<span>(全角1000字以下)</span></th>
<td><!--{$arrForm.sodan_txt.value|h|nl2br}--></td>
</tr>

これも他の項目を参考にして作ってみてください。

そしてページテンプレートの3つ目は、相談申込みの完了ページ「complete_soudan.tpl」です。
これも元はお問合わせ完了ページですので、他の項目を参考にして作ってみてください。
まあせいぜい、ページタイトルや、本文に書かれている「お問合わせ」を「ご相談申込み」に変更する程度かと思います。
以上がページのテンプレートのカスタマイズです。
かなり手抜きの説明ですが、HTMLがわかる方なら問題ないでしょう。

そして次、最後は「メールテンプレートのカスタマイズ」です。
メールテンプレートは
・「メールタイトル」
・「ヘッダー(メールの出だし部分)」
・「動的データ挿入部分(ユーザーが入力したデータなどが自動的に埋め込まれる部分)」
・「フッター(メールの終了文章や署名等)」
に分けられており、管理画面での編集は、
基本情報管理>メール設定 でさきほど登録した「ご相談受付メール」を選択すれば編集できます。
ただし管理画面で編集できるのは「動的データ挿入部分」以外です。

「動的データ挿入部分」は下記の「soudan_mail.tpl」となります。
data/Smarty/templates/default(or購入したテンプレート名)/mail_templates/soudan_mail.tpl
これも元はお問合わせのメールテンプレートですので、他の項目を参考にして作ってみてください。

以上で唐突ながらEC-CUBEの「お問合わせ」を複製・カスタマイズして別のメールバックシステムを作る説明ですが、コレそもそもの目的の半分ぐらいは自分への備忘録なので、ごめんなさい。

« 1つ古い記事:

1つ新しい記事: »

Leave a Reply

Trackback URL

記事テーマと関係ないとか、リンクがない場合(一方的TB)、あとアダルトサイトは申し訳ないですが承認しませんので予めご了解ください。またrel="nofollow"つけてるので、SEOのリンクジュースが目的のコメント、TBは残念ながら効果が無いと思います。予めご承知おきください。