[EC-CUBE]お問い合わせメールを管理画面で確認できるようにする

[EC-CUBE]お問い合わせメールを管理画面で確認できるようにする

※超大変だった。コレ。
 サイトに載っててる通りにやってもうまくいかないので、注意。

カスタマイズ結果はこんな感じに。





1.テーブルを追加

お問い合わせを保存するテーブルを追加する。

テーブル名:dtb_contact

以下のSQLを発行し、テーブルをCREATEする。
mysql用。PostgreSQLだったら、create_date timstamp のところを create_date timestamp without time zone,
に変えてね
  1. CREATE TABLE dtb_contact (
  2. contact_id serial NOT NULL,
  3. name text,
  4. name_f text,
  5. zip01 text,
  6. zip02 text,
  7. pref integer,
  8. addr01 text,
  9. tel01 text,
  10. tel02 text,
  11. tel03 text,
  12. email text,
  13. message text,
  14. create_date timestamp ,
  15. del_flg integer DEFAULT 0,
  16. customer_id integer,
  17. status integer DEFAULT 0
  18. );
  19.  

作成したテーブルに対して一意性制約を加える。

alter table dtb_contact add constraint dtb_contact_contact_id_key unique (contact_id);



2.INSERT文の作成。
お問い合わせのページのクラスを編集してINSERTのための処理を追記する。

 /data/class/pages/contact/LC_Page_Contact.php

以下のメソッドを追加。

  1. // ------------ データベースへ格納 ------------
  2. function lfRegisterContactData(){
  3. $sqlval = array();
  4. $objQuery = new SC_Query();
  5.  
  6. $sqlval['name'] = $this->arrForm['name01'];
  7. $sqlval['name_f'] = $this->arrForm['name02'];
  8. $sqlval['email'] = $this->arrForm['email'];
  9. $sqlval['zip01'] = $this->arrForm['zip01'];
  10. $sqlval['zip02'] = $this->arrForm['zip02'];
  11. $sqlval['pref'] = $this->arrForm['pref'];
  12. $sqlval['addr01'] = $this->arrForm['addr01'];
  13. $sqlval['tel01'] = $this->arrForm['tel01'];
  14. $sqlval['tel02'] = $this->arrForm['tel02'];
  15. $sqlval['tel03'] = $this->arrForm['tel03'];
  16. $sqlval['message'] = $this->arrForm['contents'];
  17. $sqlval['create_date'] = 'Now()';
  18. if(isset($this->arrData['customer_id']) && !empty($this->arrData['customer_id'])){
  19. $sqlval['customer_id'] = $this->arrData['customer_id'];
  20. }
  21. $objQuery->insert("dtb_contact", $sqlval);
  22. }
  23.  

complete時に上記メソッドを呼び出す。(122行目あたり)

  1. case 'complete':
  2. $this->arrForm = $_POST;
  3. $this->arrForm['email'] = strtolower($_POST['email']);
  4. $this->arrForm = $this->lfConvertParam($this->arrForm,$arrConvertColumn);
  5. $this->arrErr = $this->lfErrorCheck($this->arrForm);
  6. $this->lfRegisterContactData(); //追加
  7. if(!$this->arrErr) {
  8.  

ここまででDBへの登録が可能になる。



3.お問い合わせ内容の表示
以下の4ファイルを新規作成する。
※ただし、4ファイルとも同じディレクトリにあるedit.php(.tpl)をコピーして作成すること。

/html/admin/customer/contact.php
/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


contact.php
LC_Page_Admin_Customer_Edit_Ex となっている箇所を LC_Page_Admin_Customer_Contact_Ex に変更します。

  1. <?php
  2.  
  3. require_once("../../require.php");
  4. require_once(CLASS_EX_PATH . "page_extends/admin/customer/LC_Page_Admin_Customer_Contact_Ex.php");
  5.  
  6. $objPage = new LC_Page_Admin_Customer_Contact_Ex();
  7. register_shutdown_function(array($objPage, "destroy"));
  8. $objPage->init();
  9. $objPage->process();
  10. ?>
  11.  

LC_Page_Admin_Customer_Contact_Ex.php
このファイルも、Customer_Edit となっているところを Customer_Contact に変更します。

  1. <?php
  2. require_once(CLASS_PATH . "pages/admin/customer/LC_Page_Admin_Customer_Contact.php");
  3.  
  4. class LC_Page_Admin_Customer_Contact_Ex extends LC_Page_Admin_Customer_Contact {
  5.  
  6. /**
  7.   * Page を初期化する.
  8.   *
  9.   * @return void
  10.   */
  11. function init() {
  12. parent::init();
  13. }
  14.  
  15. /**
  16.   * Page のプロセス.
  17.   *
  18.   * @return void
  19.   */
  20. function process() {
  21. parent::process();
  22. }
  23.  
  24. /**
  25.   * デストラクタ.
  26.   *
  27.   * @return void
  28.   */
  29. function destroy() {
  30. parent::destroy();
  31. }
  32. }
  33. ?>
  34.  

LC_Page_Admin_Customer_Contact.php
このファイルはすべて書き直し。

  1. <?php
  2. require_once(CLASS_PATH . "pages/LC_Page.php");
  3.  
  4. class LC_Page_Admin_Customer_Contact extends LC_Page {
  5.  
  6. function init() {
  7. parent::init();
  8. $this->tpl_mainpage = 'customer/contact.tpl';
  9. $this->tpl_subnavi = 'customer/subnavi.tpl';
  10. $this->tpl_mainno = 'customer';
  11. $this->tpl_subno = 'contact';
  12. $this->tpl_pager = TEMPLATE_DIR . 'admin/pager.tpl';
  13. $this->tpl_subtitle = 'お問い合わせ管理';
  14.  
  15. $masterData = new SC_DB_MasterData_Ex();
  16. $this->arrSex = $masterData->getMasterData("mtb_sex");
  17. $this->arrPageMax = $masterData->getMasterData("mtb_page_max");
  18. }
  19.  
  20. /**
  21.   * Page のプロセス.
  22.   *
  23.   * @return void
  24.   */
  25.  
  26. function process() {
  27. // 認証可否の判定
  28. $objSess = new SC_Session();
  29. SC_Utils_Ex::sfIsSuccess($objSess);
  30.  
  31. // モードチェック
  32. if(!isset($_POST['mode'])) {
  33. $_POST['mode'] = "";
  34. } elseif($_POST['mode'] == 'delete') {
  35. if(SC_Utils_Ex::sfIsInt($_POST['contact_id'])) {
  36. $objQuery = new SC_Query();
  37. $where = "contact_id = ?";
  38. $sqlval['del_flg'] = '1';
  39. $objQuery->update("dtb_contact", $sqlval, $where, array($_POST['contact_id']));
  40. }
  41. }
  42.  
  43. // 表示順の指定
  44. $order = "create_date DESC";
  45. // 読み込む列とテーブルの指定
  46. $col = "*";
  47. $from = "dtb_contact";
  48. $where = "del_flg = 0";
  49. $objQuery = new SC_Query();
  50. // 行数の取得
  51. $linemax = $objQuery->count($from, $where);
  52. $this->tpl_linemax = $linemax; // 何件が該当しました。表示用
  53.  
  54. // ページ送り用
  55. if(is_numeric($_POST['search_page_max'])) {
  56. $page_max = $_POST['search_page_max'];
  57. } else {
  58. $page_max = SEARCH_PMAX;
  59. }
  60.  
  61. // ページ送りの取得
  62. $this->arrHidden['search_pageno'] =
  63. isset($_POST['search_pageno']) ? $_POST['search_pageno'] : "";
  64. $objNavi = new SC_PageNavi($this->arrHidden['search_pageno'],
  65. $linemax, $page_max,
  66. "fnNaviSearchPage", NAVI_PMAX);
  67. $startno = $objNavi->start_row;
  68. $this->arrPagenavi = $objNavi->arrPagenavi;
  69.  
  70. // 取得範囲の指定(開始行番号、行数のセット)
  71. $objQuery->setlimitoffset($page_max, $startno);
  72. // 表示順序
  73. $objQuery->setorder($order);
  74. // 検索結果の取得
  75. $this->arrResults = $objQuery->select($col, $from, $where);
  76.  
  77. $objView = new SC_AdminView();
  78. $objView->assignobj($this);
  79. $objView->display(MAIN_FRAME);
  80. }
  81. }
  82. ?>
  83.  

contact.tpl
表示用テンプレ。これも丸ごと書き換える。

  1. <!--★★メインコンテンツ★★-->
  2. <table width="878" border="0" cellspacing="0" cellpadding="0" summary=" ">
  3. <tr valign="top">
  4. <td background="<!--{$TPL_DIR}-->img/contents/navi_bg.gif" height="443">
  5. <!-- サブナビ -->
  6. <!--{include file=$tpl_subnavi}-->
  7. </td>
  8. <td class="mainbg">
  9. <table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
  10. <!--メインエリア-->
  11. <tr>
  12. <td align="center">
  13. <!--★★メインコンテンツ★★-->
  14.  
  15. <!--{if count($arrErr) == 0 }-->
  16.  
  17. <!--★★検索結果一覧★★-->
  18. <form name="form1" id="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
  19. <input type="hidden" name="mode" value="search">
  20. <input type="hidden" name="contact_id" value="">
  21. <!--{foreach key=key item=item from=$arrHidden}-->
  22. <input type="hidden" name="<!--{$key}-->" value="<!--{$item|escape}-->">
  23. <!--{/foreach}-->
  24. <table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
  25. <tr><td colspan="2"><img src="<!--{$TPL_DIR}-->img/contents/search_line.jpg" width="737" height="12" alt=""></td></tr>
  26. <tr bgcolor="cbcbcb">
  27. <td>
  28. <table border="0" cellspacing="0" cellpadding="0" summary=" ">
  29. <tr>
  30. <td><img src="<!--{$TPL_DIR}-->img/contents/search_left.gif" width="19" height="22" alt=""></td>
  31. <td>
  32. <!--検索結果-->
  33. <table border="0" cellspacing="0" cellpadding="0" summary=" ">
  34. <tr>
  35. <td><img src="<!--{$TPL_DIR}-->img/contents/reselt_left_top.gif" width="22" height="5" alt=""></td>
  36. <td background="<!--{$TPL_DIR}-->img/contents/reselt_top_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td>
  37. <td><img src="<!--{$TPL_DIR}-->img/contents/reselt_right_top.gif" width="22" height="5" alt=""></td>
  38. </tr>
  39. <tr>
  40. <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>
  41. <td bgcolor="#393a48" class="white10">検索結果一覧 <span class="reselt"><!--検索結果数--><!--{$tpl_linemax}--></span>&nbsp;が該当しました。</td>
  42. <td background="<!--{$TPL_DIR}-->img/contents/reselt_right_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="22" height="8" alt=""></td>
  43. </tr>
  44. <tr>
  45. <td><img src="<!--{$TPL_DIR}-->img/contents/reselt_left_bottom.gif" width="22" height="5" alt=""></td>
  46. <td background="<!--{$TPL_DIR}-->img/contents/reselt_bottom_bg.gif"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td>
  47. <td><img src="<!--{$TPL_DIR}-->img/contents/reselt_right_bottom.gif" width="22" height="5" alt=""></td>
  48. </tr>
  49. </table>
  50. <!--検索結果-->
  51. </td>
  52. <td><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="8" height="1" alt=""></td>
  53. </tr>
  54. </table>
  55. </td>
  56. <td align="right">
  57. <!--{include file=$tpl_pager}-->
  58. </td>
  59. </tr>
  60. <tr><td bgcolor="cbcbcb" colspan="2"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td></tr>
  61.  
  62. <table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
  63. <tr>
  64. <td bgcolor="#f0f0f0" align="center">
  65. <!--{if count($arrResults) > 0}-->
  66. <table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
  67. <tr><td height="12"></td></tr>
  68. <tr>
  69. <td bgcolor="#cccccc">
  70. <!--検索結果表示テーブル-->
  71. <table class="fs12" width="100%" border="0" cellspacing="1" cellpadding="3" summary=" " bgcolor="#cccccc">
  72. <tr align="center" bgcolor="#636469" STYLE="color:#ffffff;">
  73. <td rowspan="2">状況</td>
  74. <td>名前</td>
  75. <td rowspan="2">内容</td>
  76. <td>メールアドレス</td>
  77. <td rowspan="2">受信日時</td>
  78. <td rowspan="2">住所</td>
  79. <td rowspan="2">操作</td>
  80. </tr>
  81. <tr align="center" bgcolor="#636469" STYLE="color:#ffffff;">
  82. <td>会員ID</td>
  83. <td>TEL</td>
  84. </tr>
  85. <!--{foreach from=$arrResults key=k item=v}-->
  86. <tr bgcolor="#ffffff">
  87. <td align="center" rowspan="2"
  88. <a href = "./contact_detail.php?contact_id=<!--{ $v.contact_id }-->">
  89. <!--{ if $v.status == 0 }-->
  90. <span STYLE="color:red; font-weight:bold;">未読</span>
  91. <!--{ elseif $v.status == 1 }-->
  92. 既読
  93. <!--{ elseif $v.status == 2 }-->
  94. 対応中
  95. <!--{ elseif $v.status == 3 }-->
  96. 対応済
  97. <!--{ /if }-->
  98. </a>
  99. </td>
  100. <td><!--{ $v.name }--> <!--{ $v.name_f }--></td>
  101. <td rowspan="2">
  102. <a href = "./contact_detail.php?contact_id=<!--{ $v.contact_id }-->">
  103. <!--{ $v.message|truncate:30}-->
  104. </a>
  105. </td>
  106. <td><!--{mailto address=$v.email encode="javascript"}--></td>
  107. <td rowspan="2"><!--{ $v.create_date|sfDispDBDate}--></td>
  108. <td rowspan="2"><!--{ $v.zip01 }-->-<!--{ $v.zip02 }--><br><!--{$arrPref[$v.pref]}--><!--{ $v.addr01 }--></td>
  109. <td align="center">
  110. <span class="icon_mail">
  111. <a href = "./contact_reply.php?contact_id=<!--{ $v.contact_id }-->">
  112. 返信
  113. </a>
  114. </span>
  115. </td>
  116. </tr>
  117. <tr bgcolor="#ffffff">
  118. <td align="right"><!--{ if $v.customer_id }--><!--{ $v.customer_id }--><!--{ else }-->非会員<!--{ /if }--></td>
  119. <td><!--{ $v.tel01 }-->-<!--{ $v.tel02 }-->-<!--{ $v.tel03 }--></td>
  120. <td align="center">
  121. <span class="icon_delete">
  122. <a href = "<!--{$smarty.server.PHP_SELF|escape}-->"
  123. onclick= "fnModeSubmit('delete', 'contact_id', <!--{ $v.contact_id }-->);
  124. return false;">
  125. 削除
  126. </a>
  127. </span>
  128. </td>
  129. </tr>
  130. <!--{ /foreach }-->
  131. </table>
  132. <!--検索結果表示テーブル-->
  133. </td>
  134. </tr>
  135. </table>
  136.  
  137. <!--{/if}-->
  138.  
  139. </td>
  140. </tr>
  141. </table>
  142. <!--★★検索結果一覧★★-->
  143. <table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
  144. <tr><td bgcolor="cbcbcb" colspan="2"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td></tr>
  145. <tr bgcolor="cbcbcb">
  146. <td>
  147. <table border="0" cellspacing="0" cellpadding="0" summary=" ">
  148. <tr>
  149. <td><img src="<!--{$TPL_DIR}-->img/contents/search_left.gif" width="19" height="22" alt=""></td>
  150. <td><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="8" height="1" alt=""></td>
  151. </tr>
  152. </table>
  153. </td>
  154. <td align="right">
  155. <!--{include file=$tpl_pager}-->
  156. </td>
  157. </tr>
  158. <tr><td bgcolor="cbcbcb" colspan="2"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="5" alt=""></td></tr>
  159. </form>
  160. <!--{/if}-->
  161.  
  162. </td>
  163. </tr>
  164. <!--メインエリア-->
  165. </table>
  166. </td>
  167. </tr>
  168.  

subnavi.tpl
contact.tplと同じディレクトリにあるsubnavi.tplの
左ナビに「お問合わせ管理」を追加。

  1. <table width="141" border="0" cellspacing="0" cellpadding="0" summary=" " id="menu_navi">
  2. <!--ナビ-->
  3. <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>
  4. <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  5. <!--以下を追加-->
  6. <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>
  7. <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  8. <!--ここまで-->
  9. <!--ナビ-->
  10.  


4.お問合わせ詳細表示
詳細表示できるようにさらに実装する。

以下のファイルを新規作成する。
/html/admin/customer/contact_detail.php
/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

作業の流れは、お問合わせ管理画面を作っていったときと同様。

/html/admin/customer/contact_detail.php
/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
highlight(linenumber,php){{
<?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
highlight(linenumber,php){{
<script type="text/javascript">
<!--

   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}-->&nbsp;<!--{$list_data.name_f|escape}-->&nbsp;様
                                           </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>&nbsp;が該当しました。</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>
<!--★★検索結果一覧★★-->
}}


配信されるメールのテンプレート場所

 [DocumentRoot]/html/eccube/data/Smarty/templates/default/mail_templates
最終更新:2009年05月19日 18:28
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。