EC-CUBE カスタマイズ お問い合わせの内容を管理画面で確認
カスタマイズ:応用/お問い合わせ機能 (Confirmed with Ver.2.4!)
デフォルトで問合せメールを送信するフォームは付属していますので、このフォームから送信されたデータをデータベース上に格納し、管理画面から呼び出せるようなカスタマイズを行います。
お問い合わせフォームから送られたメールには、名字とお問い合わせ内容のみ記載されます。顧客のメールアドレスや携帯などの電話番号などもメール本文に載せたい場合は、EC-CUBE No.1パートナー最新情報ブログのメール本文のカスタマイズ [お問い合わせフォーム編]をご参照ください。
システム開発でお悩みの方は、ネットショップ構築パッケージ EC-Orange にお問い合わせください
動作確認
ver.2.4.0rc2
テーブルの追加
お問合わせを保存するテーブルはデフォルトでは設置されていませんので、新たに作成します。
以下のSQLを発行してください。
- dtb_contactを作成
contact_id serial NOT NULL,
name text,
name_f text,
zip01 text,
zip02 text,
pref integer,
addr01 text,
tel01 text,
tel02 text,
tel03 text,
email text,
message text,
create_date timestamp without time zone,
del_flg integer DEFAULT 0,
customer_id integer,
status integer DEFAULT 0
);
ALTER TABLE ONLY dtb_contact
ADD CONSTRAINT dtb_contact_contact_id_key UNIQUE (contact_id);
もちろん同等の内容をphpPgAdminなどのGUIツールを使って作成しても構いません。
INSERT文の作成
次に、先程作成したテーブルに、お問い合わせ内容を挿入するためのINSERT文を作ります。
data/class/pages/contact/LC_Page_Contact.php
を編集します。
- ファイルの一番最後に入力データをデータベースに送るメソッドを追加
// ------------ データベースへ格納 ------------ function lfRegisterContactData(){ $sqlval = array(); $objQuery = new SC_Query(); $sqlval['name'] = $this->arrForm['name01']; $sqlval['name_f'] = $this->arrForm['name02']; $sqlval['email'] = $this->arrForm['email']; $sqlval['zip01'] = $this->arrForm['zip01']; $sqlval['zip02'] = $this->arrForm['zip02']; $sqlval['pref'] = $this->arrForm['pref']; $sqlval['addr01'] = $this->arrForm['addr01']; $sqlval['tel01'] = $this->arrForm['tel01']; $sqlval['tel02'] = $this->arrForm['tel02']; $sqlval['tel03'] = $this->arrForm['tel03']; $sqlval['message'] = $this->arrForm['contents']; $sqlval['create_date'] = 'Now()'; if(isset($this->arrData['customer_id']) && !empty($this->arrData['customer_id'])){ $sqlval['customer_id'] = $this->arrData['customer_id']; } $objQuery->insert("dtb_contact", $sqlval); }
- complete時の処理に、先程のメソッドを追加します。
case 'complete': $this->arrForm = $_POST; $this->arrForm['email'] = strtolower($_POST['email']); $this->arrForm = $this->lfConvertParam($this->arrForm,$arrConvertColumn); $this->arrErr = $this->lfErrorCheck($this->arrForm); $this->lfRegisterContactData(); //追加 if(!$this->arrErr) {
ここまでで、データベース内に問合せ内容は保存されているはずです。
ただし、これだけでは取り出せませんので、表示用のページを作成します。
お問い合わせ内容の表示
まず、管理画面の「顧客管理」にページを追加するために、以下のファイルを作成します。
/data/class_extends/page_extends/admin/customer/LC_Page_Admin_Customer_Contact_Ex.php
/data/class/pages/admin/customer/LC_Page_Admin_Customer_Contact.php
/data/Smarty/templates/default/admin/customer/contact.tpl
どれも、同じフォルダ内にあるedit.php(tpl)をコピーして作成してください。
contact.php
LC_Page_Admin_Customer_Edit_Ex となっている箇所を LC_Page_Admin_Customer_Contact_Ex に変更します。
require_once("../../require.php");
require_once(CLASS_EX_PATH . "page_extends/admin/customer/LC_Page_Admin_Customer_Contact_Ex.php");
$objPage = new LC_Page_Admin_Customer_Contact_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->process();
LC_Page_Admin_Customer_Contact_Ex.php
このファイルも、Customer_Edit となっているところを Customer_Contact に変更します。
require_once(CLASS_PATH . "pages/admin/customer/LC_Page_Admin_Customer_Contact.php"); class LC_Page_Admin_Customer_Contact_Ex extends LC_Page_Admin_Customer_Contact { /** * Page を初期化する. * * @return void */ function init() { parent::init(); } /** * Page のプロセス. * * @return void */ function process() { parent::process(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } }
LC_Page_Admin_Customer_Contact.php
このファイルにメインの処理を記載するため、丸々作り直します。
require_once(CLASS_PATH . "pages/LC_Page.php"); class LC_Page_Admin_Customer_Contact extends LC_Page { function init() { parent::init(); $this->tpl_mainpage = 'customer/contact.tpl'; $this->tpl_subnavi = 'customer/subnavi.tpl'; $this->tpl_mainno = 'customer'; $this->tpl_subno = 'contact'; $this->tpl_pager = TEMPLATE_DIR . 'admin/pager.tpl'; $this->tpl_subtitle = 'お問い合わせ管理'; $masterData = new SC_DB_MasterData_Ex(); $this->arrSex = $masterData->getMasterData("mtb_sex"); $this->arrPageMax = $masterData->getMasterData("mtb_page_max"); } /** * Page のプロセス. * * @return void */ function process() { // 認証可否の判定 $objSess = new SC_Session(); SC_Utils_Ex::sfIsSuccess($objSess); // モードチェック if(!isset($_POST['mode'])) { $_POST['mode'] = ""; } elseif($_POST['mode'] == 'delete') { if(SC_Utils_Ex::sfIsInt($_POST['contact_id'])) { $objQuery = new SC_Query(); $where = "contact_id = ?"; $sqlval['del_flg'] = '1'; $objQuery->update("dtb_contact", $sqlval, $where, array ($_POST['contact_id'])); } } // 表示順の指定 $order = "create_date DESC"; // 読み込む列とテーブルの指定 $col = "*"; $from = "dtb_contact"; $where = "del_flg = 0"; $objQuery = new SC_Query(); // 行数の取得 $linemax = $objQuery->count($from, $where); $this->tpl_linemax = $linemax; // 何件が該当しました。表示用 // ページ送り用 if(is_numeric($_POST['search_page_max'])) { $page_max = $_POST['search_page_max']; } else { $page_max = SEARCH_PMAX; } // ページ送りの取得 $this->arrHidden['search_pageno'] = isset($_POST['search_pageno']) ? $_POST['search_pageno'] : ""; $objNavi = new SC_PageNavi($this->arrHidden['search_pageno'], $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX); $startno = $objNavi->start_row; $this->arrPagenavi = $objNavi->arrPagenavi; // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setlimitoffset($page_max, $startno); // 表示順序 $objQuery->setorder($order); // 検索結果の取得 $this->arrResults = $objQuery->select($col, $from, $where); $objView = new SC_AdminView(); $objView->assignobj($this); $objView->display(MAIN_FRAME); } }
contact.tpl
こちらも以下の内容に丸ごと入れ替えてください。
<table width="878" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr valign="top">
<td background="<!--{$TPL_DIR}-->img/contents/navi_bg.gif" height="443">
<!-- サブナビ -->
<!--{include file=$tpl_subnavi}-->
</td>
<td class="mainbg">
<table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
<!--メインエリア-->
<tr>
<td align="center">
<!--★★メインコンテンツ★★-->
<!--{if count($arrErr) == 0 }-->
<!--★★検索結果一覧★★-->
<form name="form1" id="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
<input type="hidden" name="mode" value="search">
<input type="hidden" name="contact_id" value="">
<!--{foreach key=key item=item from=$arrHidden}-->
<input type="hidden" name="<!--{$key}-->" value="<!--{$item|escape}-->">
<!--{/foreach}-->
<table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr><td colspan="2"><img src="<!--{$TPL_DIR}-->img/contents/search_line.jpg" width="737" height="12" alt=""></td></tr>
<tr bgcolor="cbcbcb">
<td>
<table border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td><img src="<!--{$TPL_DIR}-->img/contents/search_left.gif" width="19" height="22" alt=""></td>
<td>
<!--検索結果-->
<table border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td><img src="<!--{$TPL_DIR}-->img/contents/reselt_left_top.gif" width="22" height="5" alt=""></td>
<td background="<!--{$TPL_DIR}-->img/contents/reselt_top_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td>
<td><img src="<!--{$TPL_DIR}-->img/contents/reselt_right_top.gif" width="22" height="5" alt=""></td>
</tr>
<tr>
<td background="<!--{$TPL_DIR}-->img/contents/reselt_left_bg.gif"><img src="<!--{$TPL_DIR}-->img/contents/reselt_left_middle.gif" width="22" height="12" alt=""></td>
<td bgcolor="#393a48" class="white10">検索結果一覧 <span class="reselt"><!--検索結果数--><!--{$tpl_linemax}-->件</span> が該当しました。</td>
<td background="<!--{$TPL_DIR}-->img/contents/reselt_right_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="22" height="8" alt=""></td>
</tr>
<tr>
<td><img src="<!--{$TPL_DIR}-->img/contents/reselt_left_bottom.gif" width="22" height="5" alt=""></td>
<td background="<!--{$TPL_DIR}-->img/contents/reselt_bottom_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td>
<td><img src="<!--{$TPL_DIR}-->img/contents/reselt_right_bottom.gif" width="22" height="5" alt=""></td>
</tr>
</table>
<!--検索結果-->
</td>
<td><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="8" height="1" alt=""></td>
</tr>
</table>
</td>
<td align="right">
<!--{include file=$tpl_pager}-->
</td>
</tr>
<tr><td bgcolor="cbcbcb" colspan="2"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td></tr>
</table>
<table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td bgcolor="#f0f0f0" align="center">
<!--{if count($arrResults) > 0}-->
<table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr><td height="12"></td></tr>
<tr>
<td bgcolor="#cccccc">
<!--検索結果表示テーブル-->
<table class="fs12" width="100%" border="0" cellspacing="1" cellpadding="3" summary=" " bgcolor="#cccccc">
<tr align="center" bgcolor="#636469" STYLE="color:#ffffff;">
<td rowspan="2">状況</td>
<td>名前</td>
<td rowspan="2">内容</td>
<td>メールアドレス</td>
<td rowspan="2">受信日時</td>
<td rowspan="2">住所</td>
<td rowspan="2">操作</td>
</tr>
<tr align="center" bgcolor="#636469" STYLE="color:#ffffff;">
<td>会員ID</td>
<td>TEL</td>
</tr>
<!--{foreach from=$arrResults key=k item=v}-->
<tr bgcolor="#ffffff">
<td align="center" rowspan="2"
<a href = "./contact_detail.php?contact_id=<!--{ $v.contact_id }-->">
<!--{ if $v.status == 0 }-->
<span STYLE="color:red; font-weight:bold;">未読</span>
<!--{ elseif $v.status == 1 }-->
既読
<!--{ elseif $v.status == 2 }-->
対応中
<!--{ elseif $v.status == 3 }-->
対応済
<!--{ /if }-->
</a>
</td>
<td><!--{ $v.name }--> <!--{ $v.name_f }--> 様</td>
<td rowspan="2">
<a href = "./contact_detail.php?contact_id=<!--{ $v.contact_id }-->">
<!--{ $v.message|truncate:30}-->
</a>
</td>
<td><!--{mailto address=$v.email encode="javascript"}--></td>
<td rowspan="2"><!--{ $v.create_date|sfDispDBDate}--></td>
<td rowspan="2">〒<!--{ $v.zip01 }-->-<!--{ $v.zip02 }--><br><!--{$arrPref[$v.pref]}--><!--{ $v.addr01 }--></td>
<td align="center">
<span class="icon_mail">
<a href = "./contact_reply.php?contact_id=<!--{ $v.contact_id }-->">
返信
</a>
</span>
</td>
</tr>
<tr bgcolor="#ffffff">
<td align="right"><!--{ if $v.customer_id }--><!--{ $v.customer_id }--><!--{ else }-->非会員<!--{ /if }--></td>
<td><!--{ $v.tel01 }-->-<!--{ $v.tel02 }-->-<!--{ $v.tel03 }--></td>
<td align="center">
<span class="icon_delete">
<a href = "<!--{$smarty.server.PHP_SELF|escape}-->"
onclick= "fnModeSubmit('delete', 'contact_id', <!--{ $v.contact_id }-->);
return false;">
削除
</a>
</span>
</td>
</tr>
<!--{ /foreach }-->
</table>
<!--検索結果表示テーブル-->
</td>
</tr>
</table>
<!--{/if}-->
</td>
</tr>
</table>
<!--★★検索結果一覧★★-->
<table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr><td bgcolor="cbcbcb" colspan="2"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td></tr>
<tr bgcolor="cbcbcb">
<td>
<table border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td><img src="<!--{$TPL_DIR}-->img/contents/search_left.gif" width="19" height="22" alt=""></td>
<td><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="8" height="1" alt=""></td>
</tr>
</table>
</td>
<td align="right">
<!--{include file=$tpl_pager}-->
</td>
</tr>
<tr><td bgcolor="cbcbcb" colspan="2"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td></tr>
</table>
</form>
<!--{/if}-->
</td>
</tr>
<!--メインエリア-->
</table>
</td>
</tr>
</table>
subnavi.tpl
左ナビに「お問合わせ管理」を追加します。
<!--ナビ-->
<tr><td class=<!--{if $tpl_subno != 'index'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./index.php" onMouseOver="naviStyleChange('index', '#a5a5a5')" <!--{if $tpl_subno != 'index'}-->onMouseOut="naviStyleChange('index', '#636469')"<!--{/if}--> id="index"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">顧客マスタ</span></a></td></tr>
<tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
<!--以下を追加-->
<tr><td class=<!--{if $tpl_subno != 'contact'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./contact.php" onMouseOver="naviStyleChange('contact', '#a5a5a5')" <!--{if $tpl_subno != 'contact'}-->onMouseOut="naviStyleChange('contact', '#636469')"<!--{/if}--> id="contact"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">お問い合わせ管理</span></a></td></tr>
<tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
<!--ここまで-->
<!--ナビ-->
</table>
以下のように表示されます。
ただし、まだ詳細表示ができていませんので、さらに詳細画面を作っていきます。
お問合わせ詳細表示
以下のファイルを作成します。
/data/class_extends/page_extends/admin/customer/
LC_Page_Admin_Customer_Contact_Detail_Ex.php
/data/class/pages/admin/customer/LC_Page_Admin_Customer_Contact_Detail.php
/data/Smarty/templates/default/admin/customer/contact_detail.tpl
作業の流れは、お問合わせ管理画面を作っていったときと同様です。
/data/class_extends/page_extends/admin/customer/
LC_Page_Admin_Customer_Contact_Detail_Ex.php
上記の2つは、contact.phpやLC_Page_Admin_Customer_Contact_Ex.phpの時と同じようにクラス名や、インクルードするファイル名などを変更してください。
LC_Page_Admin_Customer_Contact_Detail.php
require_once(CLASS_PATH . "pages/LC_Page.php");
class LC_Page_Admin_Customer_Contact_Detail extends LC_Page {
/**
* Page を初期化する.
*
* @return void
*/
function init() {
parent::init();
$this->tpl_mainpage = 'customer/contact_detail.tpl';
$this->tpl_mainno = 'customer';
$this->tpl_subnavi = 'customer/subnavi.tpl';
$this->tpl_subno = 'contact';
$this->tpl_pager = TEMPLATE_DIR . 'admin/pager.tpl';
$this->tpl_subtitle = 'お問い合わせ詳細';
$masterData = new SC_DB_MasterData_Ex();
$this->arrPref = $masterData->getMasterData("mtb_pref", array("pref_id", "pref_name", "rank"));
}
/**
* Page のプロセス.
*
* @return void
*/
function process() {
// 認証可否の判定
$objSess = new SC_Session();
SC_Utils_Ex::sfIsSuccess($objSess);
$this->objQuery = new SC_Query();
$this->objConn = new SC_DBConn();
//---- 問合せ編集情報取得
if(isset($_GET["contact_id"]) && is_numeric($_GET["contact_id"])) {
$contact_id = $_GET["contact_id"];
} elseif(isset($_POST["contact_id"]) && is_numeric($_POST["contact_id"])) {
$contact_id = $_POST["contact_id"];
}
if($contact_id) {
//-- 問合せデータ取得
$sql = "SELECT * FROM dtb_contact WHERE del_flg = 0 AND contact_id = ?";
$result = $this->objConn->getAll($sql, array($contact_id));
$this->list_data = $result[0];
//既読に変更
if($this->list_data["status"] == 0 && !isset($_POST["status"])) {
$this->list_data["status"] = 1;
$this->lfRegiserData(array("status"=>1),array(array("column"=>"status")));
} elseif($_POST["mode"] == "confirm") {
//-- 入力データの変換
$arrRegisterColumn = array(array( "column" => "status", "convert" => "n" ),
array( "column" => "del_flg", "convert" => "n"),
);
$this->arrForm = $_POST;
$this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegisterColumn);
//-- 入力チェック
$this->arrErr = $this->lfErrorCheck($this->arrForm);
//-- 入力エラー発生?
if ($this->arrErr) {
foreach($this->arrForm as $key => $val) {
$this->list_data[ $key ] = $val;
}
} else {
$this->list_data["status"] = $this->arrForm["status"];
$this->lfRegiserData(array("status"=>$this->arrForm["status"]),array(array("column"=>"status")));
}
}
//問合せ履歴情報の取得
$this->arrContactHistory = $this->lfContactHistory($this->list_data['customer_id']);
} else {
$this->list_data = array();
}
//---- ページ表示
$objView = new SC_AdminView();
$objView->assignobj($this);
$objView->display(MAIN_FRAME);
}
/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}
// 編集登録
function lfRegiserData($array, $arrRegisterColumn) {
foreach ($arrRegisterColumn as $data) {
if($array[$data["column"]] != "") {
$arrRegist[$data["column"]] = $array[$data["column"]];
} else {
unset($arrRegist[$data["column"]]);
}
}
//-- 編集登録実行
$this->objQuery->update("dtb_contact", $arrRegist, "contact_id = ?",array($this->list_data["contact_id"]));
}
//---- 取得文字列の変換
function lfConvertParam($array, $arrRegisterColumn) {
/*
* 文字列の変換
* K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換
* C : 「全角ひら仮名」を「全角かた仮名」に変換
* V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します
* n : 「全角」数字を「半角(ハンカク)」に変換
* a : 全角英数字を半角英数字に変換する
*/
// カラム名とコンバート情報
foreach ($arrRegisterColumn as $data) {
$arrConvList[ $data["column"] ] = $data["convert"];
}
// 文字変換
foreach ($arrConvList as $key => $val) {
// POSTされてきた値のみ変換する。
if(strlen(($array[$key])) > 0) {
$array[$key] = mb_convert_kana($array[$key] ,$val);
}
}
return $array;
}
//---- 入力エラーチェック
function lfErrorCheck($array) {
$objErr = new SC_CheckError($array);
$objErr->doFunc(array("対応状態", 'status'), array("EXIST_CHECK"));
return $objErr->arrErr;
}
//問合せ履歴情報の取得
function lfContactHistory($customer_id){
$this->tpl_pageno = $_POST['search_pageno'];
$this->edit_customer_id = $customer_id;
// ページ送りの処理
$page_max = SEARCH_PMAX;
//問合せ履歴の件数取得
$this->tpl_linemax = $this->objQuery->count("dtb_contact","customer_id=? AND del_flg = 0 ", array($customer_id));
$linemax = $this->tpl_linemax;
// ページ送りの取得
$objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, $page_max, "fnNaviSearchPage2", NAVI_PMAX);
$this->arrPagenavi = $objNavi->arrPagenavi;
$this->arrPagenavi['mode'] = '';
$startno = $objNavi->start_row;
// 取得範囲の指定(開始行番号、行数のセット)
$this->objQuery->setlimitoffset($page_max, $startno);
// 表示順序
$order = "contact_id DESC";
$this->objQuery->setorder($order);
//問合せ履歴情報の取得
$arrContactHistory = $this->objQuery->select("*", "dtb_contact", "customer_id=? AND del_flg = 0 ", array($customer_id));
return $arrContactHistory;
}
}
/data/Smarty/templates/default/admin/customer/contact_detail.tpl
<!--
function fnReturn() {
document.form_search.action = './contact.php';
document.form_search.submit();
return false;
}
//-->
</script>
<★★メインコンテンツ★★-->
<table width="878" border="0" cellspacing="0" cellpadding="0" summary=" ">
<form name="form2" id="form2" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
<input type="hidden" name="mode" value="confirm">
<input type="hidden" name="contact_id" value="<!--{$list_data.contact_id|escape}-->">
<tr valign="top">
<td background="<!--{$TPL_DIR}-->img/contents/navi_bg.gif" height="402">
<▼SUB NAVI-->
<!--{include file=$tpl_subnavi}-->
<!--▲SUB NAVI-->
</td>
<td class="mainbg">
<!--▼登録テーブルここから-->
<table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
<!--メインエリア-->
<tr>
<td align="center">
<table width="706" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr><td height="14"></td></tr>
<tr>
<td colspan="3"><img src="<!--{$TPL_DIR}-->img/contents/main_top.jpg" width="706" height="14" alt=""></td>
</tr>
<tr>
<td background="<!--{$TPL_DIR}-->img/contents/main_left.jpg"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="14" height="1" alt=""></td>
<td bgcolor="#cccccc">
<table width="678" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td colspan="3"><img src="<!--{$TPL_DIR}-->img/contents/contents_title_top.gif" width="678" height="7" alt=""></td>
</tr>
<tr>
<td background="<!--{$TPL_DIR}-->img/contents/contents_title_left_bg.gif"><img src="<!--{$TPL_DIR}-->img/contents/contents_title_left.gif" width="22" height="12" alt=""></td>
<td bgcolor="#636469" width="638" class="fs14n"><span class="white"><!--コンテンツタイトル-->問合せ詳細</span></td>
<td background="<!--{$TPL_DIR}-->img/contents/contents_title_right_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="18" height="1" alt=""></td>
</tr>
<tr>
<td colspan="3"><img src="<!--{$TPL_DIR}-->img/contents/contents_title_bottom.gif" width="678" height="7" alt=""></td>
</tr>
<tr>
<td colspan="3"><img src="<!--{$TPL_DIR}-->img/contents/main_bar.jpg" width="678" height="10" alt=""></td>
</tr>
</table>
<table width="678" border="0" cellspacing="1" cellpadding="8" summary=" ">
<tr class="fs12n">
<td bgcolor="#f2f1ec" width="100">対応状況</td>
<td bgcolor="#ffffff" width="" align="center">
<select name="status" id="status">
<option value="1" <!--{if $list_data.status eq 1}-->selected="selected"<!--{/if}--> >既読</option>
<option value="2" <!--{if $list_data.status eq 2}-->selected="selected"<!--{/if}--> >対応中</option>
<option value="3" <!--{if $list_data.status eq 3}-->selected="selected"<!--{/if}--> >対応済</option>
</select>
<input type="submit" alt="変更する" name="subm" value="変更する">
</td>
<td bgcolor="#f2f1ec" width="100">顧客ID</td>
<td bgcolor="#ffffff" width="" align="center">
<!--{if $list_data.customer_id}-->
<!--{$list_data.customer_id|escape}-->
<!--{else}-->
非会員
<!--{/if}-->
</td>
</tr>
<tr class="fs12n">
<td bgcolor="#f2f1ec" width="100">お名前</td>
<td bgcolor="#ffffff" width="">
<!--{$list_data.name|escape}--> <!--{$list_data.name_f|escape}--> 様
</td>
<td bgcolor="#f2f1ec" width="100">電話番号</td>
<td bgcolor="#ffffff" width=""><!--{$list_data.tel01|escape}-->-<!--{$list_data.tel02|escape}-->-<!--{$list_data.tel03|escape}-->
</td>
</tr>
<tr class="fs12">
<td bgcolor="#f2f1ec" width="100">ご住所</td>
<td bgcolor="#ffffff" colspan="3">
〒 <!--{$list_data.zip01|escape}--> - <!--{$list_data.zip02|escape}-->
<!--{$arrPref[$list_data.pref]}--><!--{$list_data.addr01|escape}-->
</td>
</tr>
<tr class="fs12n">
<td bgcolor="#f2f1ec" width="100">メールアドレス</td>
<td bgcolor="#ffffff" colspan="3"><!--{$list_data.email|escape}--></td>
</tr>
<tr class="fs12n">
<td bgcolor="#f2f1ec" width="" align="center" colspan="4">問い合わせ内容</td>
</tr>
<tr>
<td bgcolor="#ffffff" width="" class="fs10n" colspan="4"><span class="red12"><!--{$arrErr.note}--></span>
<!--{$list_data.message|escape|nl2br}-->
</td>
</tr>
<tr class="fs12n">
</tr>
</table>
<table width="678" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td bgcolor="#cccccc"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td>
<td><img src="<!--{$TPL_DIR}-->img/contents/tbl_top.gif" width="676" height="7" alt=""></td>
<td bgcolor="#cccccc"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td>
</tr>
<tr>
<td bgcolor="#cccccc"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="10" alt=""></td>
<td bgcolor="#e9e7de" align="center">
<table border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td>
<!--▼検索結果へ戻る-->
<a href="./contact.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/contents/btn_search_back_on.jpg','back');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/contents/btn_search_back.jpg','back');" onclick="return fnReturn();"><img src="<!--{$TPL_DIR}-->img/contents/btn_search_back.jpg" width="123" height="24" alt="検索画面に戻る" border="0" name="back"></a>
<!--▲検索結果へ戻る-->
</td>
</tr>
</table>
</td>
<td bgcolor="#cccccc"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="10" alt=""></td>
</tr>
<tr>
<td colspan="3"><img src="<!--{$TPL_DIR}-->img/contents/tbl_bottom.gif" width="678" height="8" alt=""></td>
</tr>
</table>
</td>
<td background="<!--{$TPL_DIR}-->img/contents/main_right.jpg"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="14" height="1" alt=""></td>
</tr>
<tr>
<td colspan="3"><img src="<!--{$TPL_DIR}-->img/contents/main_bottom.jpg" width="706" height="14" alt=""></td>
</tr>
<tr><td height="30"></td></tr>
</table>
</td>
</tr>
<!--メインエリア-->
</table>
<!--▲登録テーブルここまで-->
</td>
</tr>
</form>
</table>
<!--★★メインコンテンツ★★-->
<!--★★問い合わせ履歴一覧★★-->
<form name="form1" id="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->?contact_id=<!--{$list_data.contact_id}-->">
<input type="hidden" name="mode" value="">
<input type="hidden" name="contact_id" value="<!--{$list_data.contact_id}-->">
<input type="hidden" name="search_pageno" value="<!--{$tpl_pageno}-->">
<table width="878" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr><td colspan="2"><img src="<!--{$TPL_DIR}-->img/contents/search_line.jpg" width="878" height="12" alt=""></td></tr>
<tr bgcolor="cbcbcb">
<td>
<table border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td><img src="<!--{$TPL_DIR}-->img/contents/search_left.gif" width="19" height="22" alt=""></td>
<td>
<!--問い合わせ履歴一覧-->
<table border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td><img src="<!--{$TPL_DIR}-->img/contents/reselt_left_top.gif" width="22" height="5" alt=""></td>
<td background="<!--{$TPL_DIR}-->img/contents/reselt_top_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td>
<td><img src="<!--{$TPL_DIR}-->img/contents/reselt_right_top.gif" width="22" height="5" alt=""></td>
</tr>
<tr>
<td background="<!--{$TPL_DIR}-->img/contents/reselt_left_bg.gif"><img src="<!--{$TPL_DIR}-->img/contents/reselt_left_middle.gif" width="22" height="12" alt=""></td>
<td bgcolor="#393a48" class="white10">問合せ履歴一覧 <span class="reselt"><!--問合せ履歴一覧--><!--{$tpl_linemax}-->件</span> が該当しました。</td>
<td background="<!--{$TPL_DIR}-->img/contents/reselt_right_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="22" height="8" alt=""></td>
</tr>
<tr>
<td><img src="<!--{$TPL_DIR}-->img/contents/reselt_left_bottom.gif" width="22" height="5" alt=""></td>
<td background="<!--{$TPL_DIR}-->img/contents/reselt_bottom_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td>
<td><img src="<!--{$TPL_DIR}-->img/contents/reselt_right_bottom.gif" width="22" height="5" alt=""></td>
</tr>
</table>
<!--問合せ履歴一覧-->
</td>
<td><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="8" height="1" alt=""></td>
</tr>
</table>
</td>
<td align="right">
<!--{include file=$tpl_pager}-->
</td>
</tr>
<tr><td bgcolor="cbcbcb" colspan="2"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td></tr>
</table>
</form>
<table width="878" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td bgcolor="#f0f0f0" align="center">
<table width="840" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr><td height="12"></td></tr>
<tr>
<!--{if $tpl_linemax > 0}-->
<td bgcolor="#cccccc">
<!--問合せ履歴一覧表示テーブル-->
<table width="840" border="0" cellspacing="1" cellpadding="5" summary=" ">
<tr bgcolor="#636469" align="center" class="fs10n">
<td width="160"><span class="white">日付</span></td>
<td width="140"><span class="white">問合せ番号</span></td>
<td width="140"><span class="white">内容</span></td>
<td width="140"><span class="white">対応状況</span></td>
</tr>
<!--{section name=cnt loop=$arrContactHistory}-->
<tr bgcolor="#ffffff" align="center" class="fs12">
<td width=""><!--{$arrContactHistory[cnt].create_date|sfDispDBDate}--></td>
<td width=""><a href="contact_detail.php?contact_id=<!--{$arrContactHistory[cnt].contact_id}-->" ><!--{$arrContactHistory[cnt].contact_id}--></a></td>
<td width=""><!--{$arrContactHistory[cnt].message|truncate:40}--></td>
<td width="">
<!--{if $arrContactHistory[cnt].status eq 1}-->
既読
<!--{elseif $arrContactHistory[cnt].status eq 2}-->
対応中
<!--{elseif $arrContactHistory[cnt].status eq 3}-->
対応済
<!--{else}-->
未読
<!--{ /if }-->
</td>
</tr>
<!--{/section}-->
</table>
<!--問合せ履歴一覧表示テーブル-->
</td>
<!--{else}-->
<td align="center" class="fs12">問合せ履歴はありません。</td>
<!--{/if}-->
</tr>
</table>
</td>
</tr>
</table>
<!--★★検索結果一覧★★-->
以上で終了です。
以下のような画面が表示されれば完成となります。
EC-CUBEのカスタマイズや、ECサイトの開発・構築でお困りなら、
ネットショップ構築パッケージEC-Orangeにお問い合わせください!
EC-CUBEのカスタマイズ・制作会社 強いネットショップ構築します|EC-Orange






