バージョン選択

フォーラム

メニュー

オンライン状況

63 人のユーザが現在オンラインです。 (51 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 63
もっと...

サイト内検索

質問 > 管理機能 > [メール履歴の表示方法] 受注履歴編集ページについて

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuta
投稿日時: 2009/3/5 16:05
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
[メール履歴の表示方法] 受注履歴編集ページについて
こんにちは。

受注履歴編集ページのカスタマイズを行っていてわからないことがありましたので質問させてください。

デフォルトの管理画面では、

受注管理⇒通知⇒メール配信
[ data/Smarty/templates/default/admin/order/mail.tpl ]

の画面で、これまでに配信したメールの履歴が見ることができますが、これを

受注管理⇒編集⇒受注履歴編集
[ data/Smarty/templates/default/admin/order/edit.tpl ]

のページでも表示させたいと思っています。

data/Smarty/templates/default/admin/order/mail.tpl
にある送信履歴を表示させている部分のsection

--------------------------------------
<!--{section name=cnt loop=$arrMailHistory}-->
<tr align="center">
<td bgcolor="#ffffff" width="140" class="fs12n"><!--{$arrMailHistory[cnt].send_date|sfDispDBDate|escape}--></td>
<!--{assign var=key value="`$arrMailHistory[cnt].template_id`"}-->
<td bgcolor="#ffffff" width="300" class="fs12n"><!--{$arrMAILTEMPLATE[$key]|escape}--></td>
<td bgcolor="#ffffff" width="300" class="fs12n"><a href="<!--{$smarty.server.PHP_SELF|escape}-->" onclick="win01('./mail_view.php?send_id=<!--{$arrMailHistory[cnt].send_id}-->','mail_view','650','800'); return false;"><!--{$arrMailHistory[cnt].subject|escape}--></a></td>
</tr>
<!--{/section}-->
--------------------------------------



data/Smarty/templates/default/admin/order/edit.tpl
に組み込んで見ましたが何も表示されませんでした。

おそらく各注文のIDをどこかに指定したりしなければいけないのかな?と思っているのですがなかなか答えが見えません。

ご存知の方いらしたら是非教えてくださいますでしょうか?

smartyの勉強と平行しつつカスタマイズを行っているので的外れなことを行っているかもしれませんがどうぞよろしくお願いいたします。
leoism
投稿日時: 2009/3/5 16:32
対応状況: −−−
常連
登録日: 2008/8/26
居住地:
投稿: 60
Re: 受注履歴の編集ページについて
僕もPHP,Smartyを勉強中で、ずばりの回答ではないので恐縮ですが、
data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php
の140行目あたりに

$objQuery = new SC_Query();
$col = "send_date, subject, template_id, send_id";
$where = "order_id = ?";
$objQuery->setorder("send_date DESC");

if(SC_Utils_Ex::sfIsInt($_POST['order_id'])) {
$this->arrMailHistory = $objQuery->select($col, "dtb_mail_history", $where, array($_POST['order_id']));
}

この記述をみつけました。
テンプレートでMailHistoryを読み込んでいるようなので、
data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
にも、同じようにデータベースから読み込む記述が必要なのでは
と思います。

確実な回答でないので申し訳ないですが、解決の糸口になれば
とおもいます。
yuta
投稿日時: 2009/3/5 17:18
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 受注履歴の編集ページについて
早速のアドバイス有り難うございます!

data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php
data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php

を触らなくてはいけなかったのですね!

早速両方を見比べてみて、
----------------------
    $objQuery = new SC_Query();
$col = "send_date, subject, template_id, send_id";
$where = "order_id = ?";
$objQuery->setorder("send_date DESC");

if(SC_Utils_Ex::sfIsInt($_POST['order_id'])) {
$this->arrMailHistory = $objQuery->select($col, "dtb_mail_history", $where, array($_POST['order_id']));
}

$this->arrForm = $objFormParam->getFormParamList();
$objView->assignobj($this);
$objView->display(MAIN_FRAME);
------------------------------


data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
のをそれらしい部分
<<ここ>>
に挿入してみました

------------------
/**
* Page のプロセス.
*
* @return void
*/
function process() {
$conn = new SC_DBConn();
$objView = new SC_AdminView();
$objSess = new SC_Session();
$objSiteInfo = new SC_SiteInfo();
$objDb = new SC_Helper_DB_Ex();
$arrInfo = $objSiteInfo->data;

////省略 ////

    $objView->assignobj($this);
// 表示モード判定
if(!$this->disp_mode) {
$objView->display(MAIN_FRAME);
} else {
$objView->display('order/disp.tpl');
}

<<ここ>>

}

/**
* デストラクタ.
* @return void
*/
/////省略////
------------------

が、やっぱり動きませんでした・・・

もうちょっと調べてみます!
ゲスト
投稿日時: 2009/3/6 2:14
対応状況: −−−
Re: 受注履歴の編集ページについて
LC_Page_Admin_Order_Edit.phpを編集するとアップデートのときに問題がおこる可能性があるので、LC_Page_Admin_Order_Edit_Ex.phpを編集した方がいいですよ。

data/class_extends/pages_extends/admin/order/LC_Page_Admin_Order_Edit_Ex.php

function init() {
  parent::init();

$masterData = new SC_DB_MasterData_Ex();
$this->arrMAILTEMPLATE = $masterData->getMasterData("mtb_mail_template");

}

function process() {
// parent::process();
$conn = new SC_DBConn();
$objView = new SC_AdminView();
$objSess = new SC_Session();
$objSiteInfo = new SC_SiteInfo();
$objDb = new SC_Helper_DB_Ex();
$arrInfo = $objSiteInfo->data;


////省略 ////


/*** メールの履歴表示 ***/
$objQuery = new SC_Query();
$col = "send_date, subject, template_id, send_id";
$where = "order_id = ?";
$objQuery->setorder("send_date DESC");

if(SC_Utils_Ex::sfIsInt($_POST['order_id'])) {
$this->arrMailHistory = $objQuery->select($col, "dtb_mail_history", $where, array($_POST['order_id']));
}
/*** メールの履歴表示:終了 ***/


$objView->assignobj($this);
// 表示モード判定
if(!$this->disp_mode) {
$objView->display(MAIN_FRAME);
} else {
$objView->display('order/disp.tpl');
}
}



data/Smarty/templates/default/admin/order/edit.tplの適当なところに入れる。


<table width="678" border="0" cellspacing="1" cellpadding="5" summary=" ">
<tr align="center">
<td bgcolor="#f2f1ec" width="140" class="fs12n">処理日</td>
<td bgcolor="#f2f1ec" width="300" class="fs12n">通知メール</td>
<td bgcolor="#f2f1ec" width="300" class="fs12n">件名</td>
</tr>
<!--{section name=cnt loop=$arrMailHistory}-->
<tr align="center">
<td bgcolor="#ffffff" width="140" class="fs12n"><!--{$arrMailHistory[cnt].send_date|sfDispDBDate|escape}--></td>
<!--{assign var=key value="`$arrMailHistory[cnt].template_id`"}-->
<td bgcolor="#ffffff" width="300" class="fs12n"><!--{$arrMAILTEMPLATE[$key]|escape}--></td>
<td bgcolor="#ffffff" width="300" class="fs12n"><a href="<!--{$smarty.server.PHP_SELF|escape}-->" onclick="win01('./mail_view.php?send_id=<!--{$arrMailHistory[cnt].send_id}-->','mail_view','650','800'); return false;"><!--{$arrMailHistory[cnt].subject|escape}--></a></td>
</tr>
<!--{/section}-->
</table>


これで、表示されると思います。
yuta
投稿日時: 2009/3/6 10:09
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 受注履歴の編集ページについて
>jazz4no さん

ありがとうございます!!
無事に表示できました!!!

>LC_Page_Admin_Order_Edit.phpを編集するとアップデートのときに問題がおこる可能性があるので、LC_Page_Admin_Order_Edit_Ex.phpを編集した方がいいですよ。

そうなのですね、こちらのサイトでも.....Exを編集していたので意味が良くわからないまままねしていたのですが、Exファイルはオリジナルに自分で機能を追加するためのファイルなのですね。勉強になりました。
eccubeの学校
http://www.eccube-school.jp/products/detail43.html#

これでEC-CUBEの少し仕組みがわかったような気がします。

楽天の受注システムにあってEC-CUBEにないような部分もうまく取り込めるように工夫してみます。

今回の件を応用して、受注一覧の部分で
[サンクスメール送信済みアイコン]
[発送メール送信済みアイコン]
などを表示できるように頑張ってみます!

leoismさん、jazz4noさん、本当に有り難うございました!
今後ともどうぞアドバイスよろしくお願いします。
Arcaim
投稿日時: 2010/6/8 13:35
対応状況: −−−
常連
登録日: 2009/10/23
居住地:
投稿: 34
Re: 受注履歴の編集ページについて
こんにちは
ここのスレッドを見まして受注編集画面ではうまく出来ました。
通知履歴の最新情報を取得する為、tplファイルの
<!--{section name=cnt loop=$arrMailHistory}-->
の所を
<!--{section name=cnt loop=$arrMailHistory max=1}-->
とす事によって最新の通知一件を表示する事に成功しましたが、
どうしても以下質問の受注検索の方ではうまく動作出来ません。

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=6185&forum=11

何かヒントでもあればと思っております。

よろしくお願い致します。
EC-CUBEバージョン 2.4.3
PHPバージョン PHP 5.1.6
DBバージョン PostgreSQL 8.3.11
AMUAMU
投稿日時: 2010/6/8 14:39
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 受注履歴の編集ページについて
マルチポストのため、誘導。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=6185&forum=11

一つ前の質問へのレスは上記にてお願いします。


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,817名です
総投稿数は109,982件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1290
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.