[Svn-src-all:3217] [version-2_12-dev 22118] #1966 (LC_Page_Admin_Order_Mail 送信処理のバリデーションエラー時に再度バリデーションが実行される)
Seasoft
admin @ mail.ec-cube.net
2012年 12月 3日 (月) 07:56:32 JST
Subversion committed to /home/svn/open 22118
http://svn.ec-cube.net/open_trac/changeset/22118
┌────────────────────────────┐
│更新者 : Seasoft │
│更新日時: 2012-12-03 07:56:32 +0900 (月, 03 12月 2012)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#1966 (LC_Page_Admin_Order_Mail 送信処理のバリデーションエラー時に再度バリデーションが実行される)
#1967 (LC_Page_Admin_Order_Mail#changeData DB 取得の有無判定に誤り)
#1975 (LC_Page_Admin_Order_Mail 入力内容の引き継ぎを単純にする)
#1905 (typo修正・ソース整形・ソースコメントの改善)
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_12-dev/data/Smarty/templates/admin/order/mail_confirm.tpl
U branches/version-2_12-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php
変更: branches/version-2_12-dev/data/Smarty/templates/admin/order/mail_confirm.tpl
===================================================================
--- branches/version-2_12-dev/data/Smarty/templates/admin/order/mail_confirm.tpl 2012-12-02 22:20:28 UTC (rev 22117)
+++ branches/version-2_12-dev/data/Smarty/templates/admin/order/mail_confirm.tpl 2012-12-02 22:56:32 UTC (rev 22118)
@@ -26,8 +26,8 @@
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
<input type="hidden" name="mode" value="send" />
<input type="hidden" name="order_id_array" value="<!--{$order_id_array}-->" />
-<!--{foreach key=key item=item from=$arrHidden}-->
-<input type="hidden" name="<!--{$key}-->" value="<!--{$item|h}-->" />
+<!--{foreach key=key item=item from=$arrForm}-->
+<input type="hidden" name="<!--{$key}-->" value="<!--{$item.value|h}-->" />
<!--{/foreach}-->
<!--{foreach key=key item=item from=$arrSearchHidden}-->
<!--{if is_array($item)}-->
変更: branches/version-2_12-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php
===================================================================
--- branches/version-2_12-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php 2012-12-02 22:20:28 UTC (rev 22117)
+++ branches/version-2_12-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php 2012-12-02 22:56:32 UTC (rev 22118)
@@ -107,42 +107,45 @@
// 検索パラメーターの引き継ぎ
$this->arrSearchHidden = $objFormParam->getSearchArray();
+ // 履歴を読み込むか
+ $load_history = SC_Utils_Ex::sfIsInt($this->tpl_order_id);
+
switch ($this->getMode()) {
- case 'pre_edit':
- case 'mail_select':
+ case 'confirm':
+ $status = $this->confirm($objFormParam);
+ if ($status === true) {
+ $load_history = false;
+ } else {
+ $this->arrErr = $status;
+ }
break;
- case 'return':
- break;
+
case 'send':
$sendStatus = $this->doSend($objFormParam);
if ($sendStatus === true) {
-
SC_Response_Ex::sendRedirect(ADMIN_ORDER_URLPATH);
SC_Response_Ex::actionExit();
- } else {
- $this->arrErr = $sendStatus;
}
- case 'confirm':
- $status = $this->confirm($objFormParam);
- if ($status === true) {
- $this->arrHidden = $objFormParam->getHashArray();
+ $this->arrErr = $sendStatus;
+ break;
- return ;
- } else {
- $this->arrErr = $status;
- }
- break;
case 'change':
$objFormParam = $this->changeData($objFormParam);
break;
- }
- if (SC_Utils_Ex::sfIsInt($objFormParam->getValue('order_id'))) {
- $this->arrMailHistory = $this->getMailHistory($objFormParam->getValue('order_id'));
+ case 'pre_edit':
+ case 'mail_select':
+ case 'return':
+ default:
+ break;
}
+ // 入力内容の引き継ぎ
$this->arrForm = $objFormParam->getFormParamList();
+ if ($load_history) {
+ $this->arrMailHistory = $this->getMailHistory($this->tpl_order_id);
+ }
}
/**
@@ -171,7 +174,6 @@
$order_id_array = explode(',',$this->order_id_array);
foreach ($order_id_array as $order_id){
$objMail = new SC_Helper_Mail_Ex();
- $objMail->setPage($this);
$objSendMail = $objMail->sfSendOrderMail($order_id,
$objFormParam->getValue('template_id'),
$objFormParam->getValue('subject'),
@@ -194,7 +196,6 @@
if (count($arrErr) == 0) {
// 注文受付メール(送信なし)
$objMail = new SC_Helper_Mail_Ex();
- $objMail->setPage($this);
$objSendMail = $objMail->sfSendOrderMail(
$objFormParam->getValue('order_id'),
$objFormParam->getValue('template_id'),
@@ -217,21 +218,23 @@
* @param SC_FormParam $objFormParam
*/
function changeData(&$objFormParam) {
- if (SC_Utils_Ex::sfIsInt($objFormParam->getValue('template_id'))) {
- $objQuery =& SC_Query_Ex::getSingletonInstance();
- $where = 'template_id = ?';
- $mailTemplates = $objQuery->select('subject, header, footer', 'dtb_mailtemplate', $where, array($objFormParam->getValue('template_id')));
- if (!is_null($mailTemplates)) {
- foreach (array('subject','header','footer') as $key) {
- $objFormParam->setValue($key,$mailTemplates[$key]);
- }
+ $objQuery =& SC_Query_Ex::getSingletonInstance();
+
+ if (!SC_Utils_Ex::sfIsInt($objFormParam->getValue('template_id'))) {
+ trigger_error('テンプレートが指定されていません。', E_USER_ERROR);
+ }
+
+ $where = 'template_id = ?';
+ $arrWhereVal = array($objFormParam->getValue('template_id'));
+ $mailTemplates = $objQuery->getRow('subject, header, footer', 'dtb_mailtemplate', $where, $arrWhereVal);
+ if (empty($mailTemplates)) {
+ foreach (array('subject','header','footer') as $key) {
+ $objFormParam->setValue($key, '');
}
- $objFormParam->setParam($mailTemplates[0]);
} else {
- foreach (array('subject','header','footer') as $key) {
- $objFormParam->setValue($key,'');
- }
+ $objFormParam->setParam($mailTemplates);
}
+
return $objFormParam;
}
Svn-src-all メーリングリストの案内