[Svn-src-all:1327] [version-2_5-dev 20216] リファクタリング頑張った

miningbrownie admin @ mail.ec-cube.net
2011年 2月 20日 (日) 01:23:40 JST


Subversion committed to /home/svn/open 20216
http://svn.ec-cube.net/open_trac/changeset/20216
┌────────────────────────────┐
│更新者 :  miningbrownie                                │
│更新日時:  2011-02-20 01:23:40 +0900 (日, 20  2月 2011)│
└────────────────────────────┘

Log:
--------------------------------------------------------
リファクタリング頑張った

Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
U   branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php

変更: branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php	2011-02-19 15:28:00 UTC (rev 20215)
+++ branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php	2011-02-19 16:23:40 UTC (rev 20216)
@@ -73,38 +73,57 @@
         SC_Utils_Ex::sfIsSuccess(new SC_Session());
         // 検索パラメータの引き継ぎ
         $this->arrSearchHidden = SC_Utils_Ex::sfFilterKey($_POST,"^search_");
-        $this->tpl_order_id = $_POST['order_id'];
         // パラメータ管理クラス
         $objFormParam = new SC_FormParam();
         // パラメータ情報の初期化
         $this->lfInitParam($objFormParam);
+        // POST値の取得
+        $objFormParam->setParam($_POST);
+        $this->tpl_order_id = $objFormParam->getValue('order_id');
 
         switch($this->getMode()) {
             case 'pre_edit':
                 break;
             case 'return':
-                // POST値の取得
-                $objFormParam->setParam($_POST);
                 break;
             case 'send':
-                $this->send($objFormParam);
-                exit;
+                // 入力値の変換 TODO ここ気持ち悪いんだ returnの時にやってなかったからもって上でやっていいものなのかどうか。
+                $objFormParam->convParam();
+                $sendStatus = $this->doSend($objFormParam,
+                $objFormParam->getValue('order_id'),
+                $objFormParam->getValue('template_id'),
+                $objFormParam->getValue('subject'),
+                $objFormParam->getValue('header'),
+                $objFormParam->getValue('footer'));
+                if($sendStatus){
+                    SC_Response_Ex::sendRedirect(ADMIN_ORDER_URLPATH);
+                    exit;
+                }
             case 'confirm':
-                $this->confirm($objFormParam);
+                // 入力値の変換 ここ気持ち悪いんだ
+                $objFormParam->convParam();
+                $status = $this->confirm($objFormParam,
+                $objFormParam->getValue('order_id'),
+                $objFormParam->getValue('template_id'),
+                $objFormParam->getValue('subject'),
+                $objFormParam->getValue('header'),
+                $objFormParam->getValue('footer'));
+                if($status){
+                    return ;
+                }
                 break;
             case 'change':
-                // POST値の取得
                 $this->changeData($objFormParam);
                 break;
         }
 
-        if(SC_Utils_Ex::sfIsInt($_POST['order_id'])) {
-            $this->arrMailHistory = $this->getMailHistory($_POST['order_id']);
+        if(SC_Utils_Ex::sfIsInt($objFormParam->getValue('order_id'))) {
+            $this->arrMailHistory = $this->getMailHistory($objFormParam->getValue('order_id'));
         }
 
         $this->arrForm = $objFormParam->getFormParamList();
     }
-    
+
     /**
      * 指定された注文番号のメール履歴を取得する。
      * @var int order_id
@@ -118,30 +137,36 @@
     }
 
     /**
-     * 
+     *
      * メールを送る。
      * @param SC_FormParam $objFormParam
      */
-    function send(&$objFormParam){
-        // POST値の取得
-        $objFormParam->setParam($_POST);
+    function doSend(&$objFormParam,$order_id, $template_id, $subject, $header, $footer){
         // 入力値の変換
         $objFormParam->convParam();
+
         $this->arrErr = $objFormParam->checkerror();
         // メールの送信
         if (count($this->arrErr) == 0) {
             // 注文受付メール
             $objMail = new SC_Helper_Mail_Ex();
-            $objMail->sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['header'], $_POST['footer']);
+            $objSendMail = $objMail->sfSendOrderMail($order_id, $template_id, $subject, $header, $footer);
+            // TODO $SC_SendMail から送信がちゃんと出来たか確認できたら素敵。
+            return true;
         }
-        SC_Response_Ex::sendRedirect(ADMIN_ORDER_URLPATH);
+        return false;
     }
 
-    function confirm(&$objFormParam){
-        // POST値の取得
-        $objFormParam->setParam($_POST);
-        // 入力値の変換
-        $objFormParam->convParam();
+    /**
+     * 確認画面を表示する為の準備
+     * @param SC_FormParam $objFormParam
+     * @param int $order_id
+     * @param int $template_id
+     * @param string $subject
+     * @param string $header
+     * @param string $footer
+     */
+    function confirm(&$objFormParam,$order_id, $template_id, $subject, $header, $footer){
         // 入力値の引き継ぎ
         $this->arrHidden = $objFormParam->getHashArray();
         $this->arrErr = $objFormParam->checkerror();
@@ -149,23 +174,34 @@
         if (count($this->arrErr) == 0) {
             // 注文受付メール(送信なし)
             $objMail = new SC_Helper_Mail_Ex();
-            $objSendMail = $objMail->sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['header'], $_POST['footer'], false);
-            // 確認ページの表示
-            $this->tpl_subject = $_POST['subject'];
+            $objSendMail = $objMail->sfSendOrderMail(
+            $order_id,
+            $template_id,
+            $subject,
+            $header,
+            $footer, false);
+            
+            $this->tpl_subject = $objFormParam->getValue('subject');
             $this->tpl_body = mb_convert_encoding( $objSendMail->body, CHAR_CODE, "auto" );
             $this->tpl_to = $objSendMail->tpl_to;
             $this->tpl_mainpage = 'order/mail_confirm.tpl';
-            return;
+            return true;
         }
+        return false;
     }
 
+    /**
+     * 
+     * テンプレートの文言をフォームに入れる。
+     * @param SC_FormParam $objFormParam
+     */
     function changeData(&$objFormParam){
-        $objFormParam->setValue('template_id', $_POST['template_id']);
-        if(SC_Utils_Ex::sfIsInt($_POST['template_id'])) {
+        $objFormParam->setValue('template_id', $objFormParam->getValue('template_id'));
+        if(SC_Utils_Ex::sfIsInt($objFormParam->getValue('template_id'))) {
             $objQuery =& SC_Query::getSingletonInstance();
             $where = "template_id = ?";
-            $arrRet = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array($_POST['template_id']));
-            $objFormParam->setParam($arrRet[0]);
+            $mailTemplates = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array($objFormParam->getValue('template_id')));
+            $objFormParam->setParam($mailTemplates[0]);
         }
     }
 
@@ -180,12 +216,12 @@
     }
 
 
-    /* パラメータ情報の初期化 */
     /**
      * パラメータ情報の初期化
      * @param SC_FormParam $objFormParam
      */
     function lfInitParam(&$objFormParam) {
+        $objFormParam->addParam("オーダーID", "order_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
         $objFormParam->addParam("テンプレート", "template_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
         $objFormParam->addParam("メールタイトル", "subject", STEXT_LEN, "KVa",  array("EXIST_CHECK", "MAX_LENGTH_CHECK", "SPTAB_CHECK"));
         $objFormParam->addParam("ヘッダー", "header", LTEXT_LEN, "KVa", array("MAX_LENGTH_CHECK", "SPTAB_CHECK"));




Svn-src-all メーリングリストの案内