ITOBEN STYLE > EC-CUBE:「お問い合わせ管理機能」「返信機能」を追加する 2012年3月15日カテゴリー:未分類 EC-CUBE:「お問い合わせ管理機能」「返信機能」を追加する 「お問い合わせ」の項目に「回答希望」を追加するが適用されている場合は、 ↓こちらをご覧ください。 EC-CUBE:「お問い合わせ管理機能」「返信機能」を追加する(「回答希望」が設定されている場合) 下記書籍をもとに書いています。詳しくは、本をお読みください。 1 「お問い合わせ管理機能」作成のために、データベースにdtb_contactテーブルを作成する。下記SQLを実行する ——————————————- CREATE TABLE dtb_contact( contact_id serial NOT NULL, name01 text, name02 text, zip01 text, zip02 text, pref integer, addr01 text, addr02 text, tel01 text, tel02 text, tel03 text, email text, contents text, create_date timestamp, del_flg integer DEFAULT 0, customer_id integer, status integer DEFAULT 0 ); ——————————————- 2 データベースに登録する ■data/class/pages/contact/LC_Page_Contact.php ①115行目あたり function actionメソッド内の「$this->arrForm = $objFormParam->getFormParamList();」の後に追加 [php] // ▼データベースに登録する $this->lfRegisterContactData(); [/php] ②class LC_Page_Contact extends LC_Page_Exクラス内の一番最後に追加 [php] function lfRegisterContactData(){ $sqlval = array();//データベース登録用の配列を用意 $objQuery = new SC_Query();//データベース操作クラスをインスタンス化 //DB登録用の配列に値を代入 $sqlval[‘name01’] = $this->arrForm[‘name01’][‘value’]; //お名前(姓) $sqlval[‘name02’] = $this->arrForm[‘name02’][‘value’]; //お名前(姓 $sqlval[‘email’] = $this->arrForm[‘email’][‘value’]; //メールアドレス $sqlval[‘zip01’] = $this->arrForm[‘zip01’][‘value’]; //郵便番号上1 $sqlval[‘zip02’] = $this->arrForm[‘zip02’][‘value’]; //郵便番号下2 $sqlval[‘pref’] = $this->arrForm[‘pref’][‘value’]; //都道府県番号 $sqlval[‘addr01’] = $this->arrForm[‘addr01’][‘value’]; //住所1 $sqlval[‘addr02’] = $this->arrForm[‘addr02’][‘value’]; //住所2 $sqlval[‘tel01’] = $this->arrForm[‘tel01’][‘value’]; //お電話番号1 $sqlval[‘tel02’] = $this->arrForm[‘tel02’][‘value’]; //お電話番号2 $sqlval[‘tel03’] = $this->arrForm[‘tel03’][‘value’]; //お電話番号3 $sqlval[‘contents’] = $this->arrForm[‘contents’][‘value’]; //問い合わせ内容 $sqlval[‘create_date’] = $this->arrForm[‘create_date’][‘value’]; //送信日時 if(isset($this->arrData[‘customer_id’]) && !empty($this->arrData[‘customer_id’])){ // 会員番号が存在するのであれば、会員番号も登録 $sqlval[‘customer_id’] = $this->arrData[‘customer_id’]; //会員番号 } $objQuery->insert(“dtb_contact”,$sqlval);//問い合わせ内容を登録 } [/php] 3 管理画面で表示・処理するページを新規作成 (1) ■html/admin/customer/contact.php ■html/admin/customer/contact_detail.php (2) ■data/class_extends/page_extends/admin\customer/LC_Page_Admin_Customer_Contact_Ex.php ■data/class_extends/page_extends/admin\customer/LC_Page_Admin_Customer_Contact_Detail_Ex.php (3) ■data/class/pages/admin/customer/LC_Page_Admin_Customer_Contact_Detail.php ■data/class/pages/admin/customer/LC_Page_Admin_Customer_Contact.php (4) ■data/Smarty/templates/admin/customer/contact.tpl ■data/Smarty/templates/admin/customer/contact_detail.tpl (5)■data/Smarty/templates/admin/customer/subnavi.tplに追加 [php] class=”on” id=”navi-customer-customer”>(1) ■html/admin/customer/contact_reply.php (2) ■data/class_extends/page_extends/admin\customer/LC_Page_Admin_Customer_Contact_Reply_Ex.php (3) ■data/class/pages/admin/customer/LC_Page_Admin_Customer_Contact_Reply.php ★本文には、「名字・名前 様」と表示されなければいけないところを「名字・名字 様」と表示される場合は、172行目あたりの2つめの「name01」を「name02」に変更します。 [php] $this->arrForm[‘content’] = $this->contact_data[0][‘name01’] . $this->contact_data[0][‘name02’] . ‘様’・・・・・ [/php] (4) ■data/Smarty/templates/admin/customer/contact_reply.tpl ▼上記の3で作成した下記ファイルに追加する ■data/Smarty/templates/admin/customer/contact.tpl ■data/Smarty/templates/admin/customer/contact_detail.tpl 6 「送信履歴」の「本文」の背景 本文が長く、テーブルのセルが広がると背景色が2色になって見づらいので修正する。 ■data/Smarty/templates/admin/customer/contact_reply.tplの最下部 [php] 本文 ↓ 本文 [/php] ■html/user_data/packages/admin/css/admin_contents.css 127行目あたり table.list th { background: url(‘../img/contents/table_back.png’) repeat-x #b4b4b4; text-align: center; } の下に、追加する。 [php] table.list th.contact_reply { background-color:#F4F5F5; } [/php]
「お問い合わせ」の項目に「回答希望」を追加するが適用されている場合は、
↓こちらをご覧ください。
EC-CUBE:「お問い合わせ管理機能」「返信機能」を追加する(「回答希望」が設定されている場合)
下記書籍をもとに書いています。詳しくは、本をお読みください。
1 「お問い合わせ管理機能」作成のために、データベースにdtb_contactテーブルを作成する。下記SQLを実行する
——————————————-
CREATE TABLE dtb_contact(
contact_id serial NOT NULL,
name01 text,
name02 text,
zip01 text,
zip02 text,
pref integer,
addr01 text,
addr02 text,
tel01 text,
tel02 text,
tel03 text,
email text,
contents text,
create_date timestamp,
del_flg integer DEFAULT 0,
customer_id integer,
status integer DEFAULT 0
);
——————————————-
2 データベースに登録する
■data/class/pages/contact/LC_Page_Contact.php
①115行目あたり function actionメソッド内の「$this->arrForm = $objFormParam->getFormParamList();」の後に追加
[php]
// ▼データベースに登録する
$this->lfRegisterContactData();
[/php]
②class LC_Page_Contact extends LC_Page_Exクラス内の一番最後に追加
[php]
function lfRegisterContactData(){
$sqlval = array();//データベース登録用の配列を用意
$objQuery = new SC_Query();//データベース操作クラスをインスタンス化
//DB登録用の配列に値を代入
$sqlval[‘name01’] = $this->arrForm[‘name01’][‘value’]; //お名前(姓)
$sqlval[‘name02’] = $this->arrForm[‘name02’][‘value’]; //お名前(姓
$sqlval[‘email’] = $this->arrForm[‘email’][‘value’]; //メールアドレス
$sqlval[‘zip01’] = $this->arrForm[‘zip01’][‘value’]; //郵便番号上1
$sqlval[‘zip02’] = $this->arrForm[‘zip02’][‘value’]; //郵便番号下2
$sqlval[‘pref’] = $this->arrForm[‘pref’][‘value’]; //都道府県番号
$sqlval[‘addr01’] = $this->arrForm[‘addr01’][‘value’]; //住所1
$sqlval[‘addr02’] = $this->arrForm[‘addr02’][‘value’]; //住所2
$sqlval[‘tel01’] = $this->arrForm[‘tel01’][‘value’]; //お電話番号1
$sqlval[‘tel02’] = $this->arrForm[‘tel02’][‘value’]; //お電話番号2
$sqlval[‘tel03’] = $this->arrForm[‘tel03’][‘value’]; //お電話番号3
$sqlval[‘contents’] = $this->arrForm[‘contents’][‘value’]; //問い合わせ内容
$sqlval[‘create_date’] = $this->arrForm[‘create_date’][‘value’]; //送信日時
if(isset($this->arrData[‘customer_id’]) && !empty($this->arrData[‘customer_id’])){
// 会員番号が存在するのであれば、会員番号も登録
$sqlval[‘customer_id’] = $this->arrData[‘customer_id’]; //会員番号
}
$objQuery->insert(“dtb_contact”,$sqlval);//問い合わせ内容を登録
}
[/php]
3 管理画面で表示・処理するページを新規作成
(1)
■html/admin/customer/contact.php
■html/admin/customer/contact_detail.php
(2)
■data/class_extends/page_extends/admin\customer/LC_Page_Admin_Customer_Contact_Ex.php
■data/class_extends/page_extends/admin\customer/LC_Page_Admin_Customer_Contact_Detail_Ex.php
(3)
■data/class/pages/admin/customer/LC_Page_Admin_Customer_Contact_Detail.php
■data/class/pages/admin/customer/LC_Page_Admin_Customer_Contact.php
(4)
■data/Smarty/templates/admin/customer/contact.tpl
■data/Smarty/templates/admin/customer/contact_detail.tpl
(5)■data/Smarty/templates/admin/customer/subnavi.tplに追加
[php]
■html/admin/customer/contact_reply.php
(2)
■data/class_extends/page_extends/admin\customer/LC_Page_Admin_Customer_Contact_Reply_Ex.php
(3)
■data/class/pages/admin/customer/LC_Page_Admin_Customer_Contact_Reply.php
★本文には、「名字・名前 様」と表示されなければいけないところを「名字・名字 様」と表示される場合は、172行目あたりの2つめの「name01」を「name02」に変更します。
[php]
$this->arrForm[‘content’] = $this->contact_data[0][‘name01’] . $this->contact_data[0][‘name02’] . ‘様’・・・・・
[/php]
(4)
■data/Smarty/templates/admin/customer/contact_reply.tpl
▼上記の3で作成した下記ファイルに追加する
■data/Smarty/templates/admin/customer/contact.tpl
■data/Smarty/templates/admin/customer/contact_detail.tpl
6 「送信履歴」の「本文」の背景
本文が長く、テーブルのセルが広がると背景色が2色になって見づらいので修正する。
■data/Smarty/templates/admin/customer/contact_reply.tplの最下部
[php]
↓
[/php]
■html/user_data/packages/admin/css/admin_contents.css
127行目あたり
table.list th {
background: url(‘../img/contents/table_back.png’) repeat-x #b4b4b4;
text-align: center;
}
の下に、追加する。
[php]
table.list th.contact_reply {
background-color:#F4F5F5;
}
[/php]