Changeset 20216


Ignore:
Timestamp:
2011/02/20 01:23:40 (11 years ago)
Author:
miningbrownie
Message:

リファクタリング頑張った

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Mail.php

    r20215 r20216  
    7474        // 検索パラメータの引き継ぎ 
    7575        $this->arrSearchHidden = SC_Utils_Ex::sfFilterKey($_POST,"^search_"); 
    76         $this->tpl_order_id = $_POST['order_id']; 
    7776        // パラメータ管理クラス 
    7877        $objFormParam = new SC_FormParam(); 
    7978        // パラメータ情報の初期化 
    8079        $this->lfInitParam($objFormParam); 
     80        // POST値の取得 
     81        $objFormParam->setParam($_POST); 
     82        $this->tpl_order_id = $objFormParam->getValue('order_id'); 
    8183 
    8284        switch($this->getMode()) { 
     
    8486                break; 
    8587            case 'return': 
    86                 // POST値の取得 
    87                 $objFormParam->setParam($_POST); 
    8888                break; 
    8989            case 'send': 
    90                 $this->send($objFormParam); 
    91                 exit; 
     90                // 入力値の変換 TODO ここ気持ち悪いんだ returnの時にやってなかったからもって上でやっていいものなのかどうか。 
     91                $objFormParam->convParam(); 
     92                $sendStatus = $this->doSend($objFormParam, 
     93                $objFormParam->getValue('order_id'), 
     94                $objFormParam->getValue('template_id'), 
     95                $objFormParam->getValue('subject'), 
     96                $objFormParam->getValue('header'), 
     97                $objFormParam->getValue('footer')); 
     98                if($sendStatus){ 
     99                    SC_Response_Ex::sendRedirect(ADMIN_ORDER_URLPATH); 
     100                    exit; 
     101                } 
    92102            case 'confirm': 
    93                 $this->confirm($objFormParam); 
     103                // 入力値の変換 ここ気持ち悪いんだ 
     104                $objFormParam->convParam(); 
     105                $status = $this->confirm($objFormParam, 
     106                $objFormParam->getValue('order_id'), 
     107                $objFormParam->getValue('template_id'), 
     108                $objFormParam->getValue('subject'), 
     109                $objFormParam->getValue('header'), 
     110                $objFormParam->getValue('footer')); 
     111                if($status){ 
     112                    return ; 
     113                } 
    94114                break; 
    95115            case 'change': 
    96                 // POST値の取得 
    97116                $this->changeData($objFormParam); 
    98117                break; 
    99118        } 
    100119 
    101         if(SC_Utils_Ex::sfIsInt($_POST['order_id'])) { 
    102             $this->arrMailHistory = $this->getMailHistory($_POST['order_id']); 
     120        if(SC_Utils_Ex::sfIsInt($objFormParam->getValue('order_id'))) { 
     121            $this->arrMailHistory = $this->getMailHistory($objFormParam->getValue('order_id')); 
    103122        } 
    104123 
    105124        $this->arrForm = $objFormParam->getFormParamList(); 
    106125    } 
    107      
     126 
    108127    /** 
    109128     * 指定された注文番号のメール履歴を取得する。 
     
    119138 
    120139    /** 
    121      *  
     140     * 
    122141     * メールを送る。 
    123142     * @param SC_FormParam $objFormParam 
    124143     */ 
    125     function send(&$objFormParam){ 
    126         // POST値の取得 
    127         $objFormParam->setParam($_POST); 
     144    function doSend(&$objFormParam,$order_id, $template_id, $subject, $header, $footer){ 
    128145        // 入力値の変換 
    129146        $objFormParam->convParam(); 
     147 
    130148        $this->arrErr = $objFormParam->checkerror(); 
    131149        // メールの送信 
     
    133151            // 注文受付メール 
    134152            $objMail = new SC_Helper_Mail_Ex(); 
    135             $objMail->sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['header'], $_POST['footer']); 
    136         } 
    137         SC_Response_Ex::sendRedirect(ADMIN_ORDER_URLPATH); 
    138     } 
    139  
    140     function confirm(&$objFormParam){ 
    141         // POST値の取得 
    142         $objFormParam->setParam($_POST); 
    143         // 入力値の変換 
    144         $objFormParam->convParam(); 
     153            $objSendMail = $objMail->sfSendOrderMail($order_id, $template_id, $subject, $header, $footer); 
     154            // TODO $SC_SendMail から送信がちゃんと出来たか確認できたら素敵。 
     155            return true; 
     156        } 
     157        return false; 
     158    } 
     159 
     160    /** 
     161     * 確認画面を表示する為の準備 
     162     * @param SC_FormParam $objFormParam 
     163     * @param int $order_id 
     164     * @param int $template_id 
     165     * @param string $subject 
     166     * @param string $header 
     167     * @param string $footer 
     168     */ 
     169    function confirm(&$objFormParam,$order_id, $template_id, $subject, $header, $footer){ 
    145170        // 入力値の引き継ぎ 
    146171        $this->arrHidden = $objFormParam->getHashArray(); 
     
    150175            // 注文受付メール(送信なし) 
    151176            $objMail = new SC_Helper_Mail_Ex(); 
    152             $objSendMail = $objMail->sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['header'], $_POST['footer'], false); 
    153             // 確認ページの表示 
    154             $this->tpl_subject = $_POST['subject']; 
     177            $objSendMail = $objMail->sfSendOrderMail( 
     178            $order_id, 
     179            $template_id, 
     180            $subject, 
     181            $header, 
     182            $footer, false); 
     183             
     184            $this->tpl_subject = $objFormParam->getValue('subject'); 
    155185            $this->tpl_body = mb_convert_encoding( $objSendMail->body, CHAR_CODE, "auto" ); 
    156186            $this->tpl_to = $objSendMail->tpl_to; 
    157187            $this->tpl_mainpage = 'order/mail_confirm.tpl'; 
    158             return; 
    159         } 
    160     } 
    161  
     188            return true; 
     189        } 
     190        return false; 
     191    } 
     192 
     193    /** 
     194     *  
     195     * テンプレートの文言をフォームに入れる。 
     196     * @param SC_FormParam $objFormParam 
     197     */ 
    162198    function changeData(&$objFormParam){ 
    163         $objFormParam->setValue('template_id', $_POST['template_id']); 
    164         if(SC_Utils_Ex::sfIsInt($_POST['template_id'])) { 
     199        $objFormParam->setValue('template_id', $objFormParam->getValue('template_id')); 
     200        if(SC_Utils_Ex::sfIsInt($objFormParam->getValue('template_id'))) { 
    165201            $objQuery =& SC_Query::getSingletonInstance(); 
    166202            $where = "template_id = ?"; 
    167             $arrRet = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array($_POST['template_id'])); 
    168             $objFormParam->setParam($arrRet[0]); 
     203            $mailTemplates = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array($objFormParam->getValue('template_id'))); 
     204            $objFormParam->setParam($mailTemplates[0]); 
    169205        } 
    170206    } 
     
    181217 
    182218 
    183     /* パラメータ情報の初期化 */ 
    184219    /** 
    185220     * パラメータ情報の初期化 
     
    187222     */ 
    188223    function lfInitParam(&$objFormParam) { 
     224        $objFormParam->addParam("オーダーID", "order_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    189225        $objFormParam->addParam("テンプレート", "template_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    190226        $objFormParam->addParam("メールタイトル", "subject", STEXT_LEN, "KVa",  array("EXIST_CHECK", "MAX_LENGTH_CHECK", "SPTAB_CHECK")); 
Note: See TracChangeset for help on using the changeset viewer.