Ignore:
Timestamp:
2011/02/17 21:47:13 (13 years ago)
Author:
yomoro
Message:

#978 リファクタリング(修正)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact.php

    r20078 r20186  
     1 
    12<?php 
    23/* 
     
    3839 
    3940    /** 
    40      * フォーム値変換用カラム 
    41      * 
    42      * 
    43      */ 
    44     var $arrConvertColumn = array( 
    45         array("column" => "name01",    "convert" => "aKV"), 
    46         array("column" => "name02",    "convert" => "aKV"), 
    47         array("column" => "kana01",    "convert" => "CKV"), 
    48         array("column" => "kana02",    "convert" => "CKV"), 
    49         array("column" => "zip01",     "convert" => "n"), 
    50         array("column" => "zip02",     "convert" => "n"), 
    51         array("column" => "pref",      "convert" => "n"), 
    52         array("column" => "addr01",    "convert" => "aKV"), 
    53         array("column" => "addr02",    "convert" => "aKV"), 
    54         array("column" => "email",     "convert" => "a"), 
    55         array("column" => "email02",   "convert" => "a"), 
    56         array("column" => "tel01",     "convert" => "n"), 
    57         array("column" => "tel02",     "convert" => "n"), 
    58         array("column" => "tel03",     "convert" => "n"), 
    59         array("column" => "contents",  "convert" => "aKV"), 
    60     ); 
    61  
    62     /** 
    6341     * Page を初期化する. 
    6442     * 
     
    9270    function action() { 
    9371        $objDb = new SC_Helper_DB_Ex(); 
     72        $objFormParam = new SC_FormParam(); 
    9473        $this->CONF = $objDb->sfGetBasisData();         // 店舗基本情報 
    9574 
     
    9877        switch ($this->getMode()) { 
    9978            case 'confirm': 
    100               $this->lfContactConfirm(); 
     79              // エラーチェック 
     80                $this->lfInitParam($objFormParam); 
     81                $objFormParam->setParam($_POST); 
     82                $objFormParam->convParam(); 
     83                $objFormParam->toLower('email'); 
     84                $objFormParam->toLower('email02'); 
     85                $this->arrErr = $objFormParam->checkError(); 
     86                // 入力値の取得 
     87                $this->arrForm = $objFormParam->getFormParamList(); 
     88             
     89                    if ( ! $this->arrErr ){ 
     90                    // エラー無しで完了画面 
     91                    $this->tpl_mainpage = 'contact/confirm.tpl'; 
     92                    $this->tpl_title = 'お問い合わせ(確認ページ)'; 
     93                    } 
     94                     
    10195              break; 
    10296 
    10397            case 'return': 
    104               $this->lfContactReturn(); 
     98                $this->lfInitParam($objFormParam); 
     99                $objFormParam->setParam($_POST); 
     100                $this->arrForm = $objFormParam->getFormParamList(); 
    105101              break; 
    106  
    107102            case 'complete': 
    108               $this->lfContactComplete(); 
     103                $this->lfInitParam($objFormParam); 
     104                $objFormParam->setParam($_POST); 
     105                $this->arrErr = $objFormParam->checkError(); 
     106                $this->arrForm = $objFormParam->getFormParamList(); 
     107                    if(!$this->arrErr) { 
     108                    $this->lfSendMail($this); 
     109                    // 完了ページへ移動する 
     110                    SC_Response_Ex::sendRedirect('complete.php'); 
     111                    exit; 
     112                    } else { 
     113                    SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
     114                    } 
    109115              break; 
    110116 
     
    125131    // }}} 
    126132    // {{{ protected functions 
    127  
    128     /** 
    129      * 確認画面 
     133     
     134    /** 
     135     * お問い合わせ入力時のパラメータ情報の初期化を行う. 
    130136     * 
     137     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
    131138     * @return void 
    132139     */ 
    133     function lfContactConfirm() { 
    134         // エラーチェック 
    135         $arrForm = $_POST; 
    136         $arrForm['email'] = strtolower($_POST['email']); 
    137         $this->arrForm = $this->lfConvertParam($arrForm, $this->arrConvertColumn); 
    138         $this->arrErr = $this->lfErrorCheck($this->arrForm); 
    139         if ( ! $this->arrErr ){ 
    140             // エラー無しで完了画面 
    141             $this->tpl_mainpage = 'contact/confirm.tpl'; 
    142             $this->tpl_title = 'お問い合わせ(確認ページ)'; 
    143         } 
    144     } 
    145  
    146     /** 
    147      * 前に戻る 
    148      * 
    149      * @return void 
    150      */ 
    151     function lfContactReturn() { 
    152         $this->arrForm = $_POST; 
    153     } 
    154  
    155     /** 
    156      * 完了ページへ 
    157      * 
    158      * @return void 
    159      */ 
    160     function lfContactComplete() { 
    161         $arrForm = $_POST; 
    162         $arrForm['email']   = isset($_POST['email']) ? strtolower($_POST['email']) : ''; 
    163         $arrForm['email02'] = isset($_POST['email02']) ? strtolower($_POST['email02']) : ''; 
    164         $this->arrForm = $this->lfConvertParam($arrForm, $this->arrConvertColumn); 
    165         $this->arrErr = $this->lfErrorCheck($this->arrForm); 
    166         if(!$this->arrErr) { 
    167             $this->lfSendMail($this); 
    168             // 完了ページへ移動する 
    169             SC_Response_Ex::sendRedirect('complete.php'); 
    170             exit; 
    171         } else { 
    172             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    173         } 
    174     } 
    175  
    176     //エラーチェック処理部 
    177     function lfErrorCheck($array) { 
    178         $objErr = new SC_CheckError($array); 
    179         $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    180         $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    181         $objErr->doFunc(array("お名前(フリガナ・姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK", "KANA_CHECK")); 
    182         $objErr->doFunc(array("お名前(フリガナ・名)", 'kana02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK", "KANA_CHECK")); 
    183         $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    184         $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    185         $objErr->doFunc(array("住所1", "addr01", MTEXT_LEN), array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    186         $objErr->doFunc(array("住所2", "addr02", MTEXT_LEN), array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    187         $objErr->doFunc(array("お問い合わせ内容", "contents", MLTEXT_LEN), array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    188         $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    189         $objErr->doFunc(array('メールアドレス(確認)', "email02", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    190         $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 
    191         $objErr->doFunc(array("お電話番号1", 'tel01', TEL_ITEM_LEN), array("NUM_CHECK", "MAX_LENGTH_CHECK")); 
    192         $objErr->doFunc(array("お電話番号2", 'tel02', TEL_ITEM_LEN), array("NUM_CHECK", "MAX_LENGTH_CHECK")); 
    193         $objErr->doFunc(array("お電話番号3", 'tel03', TEL_ITEM_LEN), array("NUM_CHECK", "MAX_LENGTH_CHECK")); 
    194  
    195         if (REVIEW_ALLOW_URL == false) { 
    196             // URLの入力を禁止 
    197             $masterData = new SC_DB_MasterData_Ex(); 
    198             $objErr->doFunc(array("URL", "contents", $masterData->getMasterData("mtb_review_deny_url")), array("PROHIBITED_STR_CHECK")); 
    199         } 
    200  
    201         return $objErr->arrErr; 
    202     } 
    203  
    204     //---- 取得文字列の変換 
    205     function lfConvertParam($array, $arrConvertColumn) { 
    206         /* 
    207          *  文字列の変換 
    208          *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換 
    209          *  C :  「全角ひら仮名」を「全角かた仮名」に変換 
    210          *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します 
    211          *  n :  「全角」数字を「半角(ハンカク)」に変換 
    212          *  a :  全角英数字を半角英数字に変換する 
    213          */ 
    214         // カラム名とコンバート情報 
    215         foreach ($arrConvertColumn as $data) { 
    216             $arrConvList[ $data["column"] ] = $data["convert"]; 
    217         } 
    218  
    219         // 文字変換 
    220         foreach ($arrConvList as $key => $val) { 
    221             // POSTされてきた値のみ変換する。 
    222             if(strlen(($array[$key])) > 0) { 
    223                 $array[$key] = mb_convert_kana($array[$key] ,$val); 
    224             } 
    225         } 
    226         return $array; 
     140    function lfInitParam(&$objFormParam) { 
     141         
     142        $objFormParam->addParam("お名前(姓)", 'name01', STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     143        $objFormParam->addParam("お名前(名)", 'name02', STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     144        $objFormParam->addParam("お名前(フリガナ・姓)", 'kana01', STEXT_LEN, "KVCa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK", "KANA_CHECK")); 
     145        $objFormParam->addParam("お名前(フリガナ・名)", 'kana02', STEXT_LEN, "KVCa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK", "KANA_CHECK")); 
     146        $objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, "n",array("SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     147        $objFormParam->addParam("郵便番号2", "zip02", ZIP02_LEN, "n",array("SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     148        $objFormParam->addParam("都道府県", "pref", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
     149        $objFormParam->addParam("住所1", "addr01", MTEXT_LEN, "KVa", array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     150        $objFormParam->addParam("住所2", "addr02", MTEXT_LEN, "KVa", array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     151        $objFormParam->addParam("お問い合わせ内容", "contents", MLTEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
     152        $objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "KVa",array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
     153        $objFormParam->addParam('メールアドレス(確認)', "email02", MTEXT_LEN, "KVa",array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
     154        $objFormParam->addParam("お電話番号1", 'tel01', TEL_ITEM_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK")); 
     155        $objFormParam->addParam("お電話番号2", 'tel02', TEL_ITEM_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK")); 
     156        $objFormParam->addParam("お電話番号3", 'tel03', TEL_ITEM_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK")); 
    227157    } 
    228158 
     
    238168        $objPage->tpl_infoemail = $arrInfo['email02']; 
    239169 
    240         $fromMail_name = $objPage->arrForm['name01'] ." 様"; 
    241         $fromMail_address = $objPage->arrForm['email']; 
     170        $fromMail_name = $objPage->arrForm['name01']['value'] ." 様"; 
     171        $fromMail_address = $objPage->arrForm['email']['value']; 
    242172 
    243173        $helperMail = new SC_Helper_Mail_Ex(); 
    244174        $helperMail->sfSendTemplateMail($CONF["email02"], $CONF["shop_name"], "5", $objPage, $fromMail_address, $fromMail_name, $fromMail_address); 
    245         $helperMail->sfSendTemplateMail($objPage->arrForm['email'], $objPage->arrForm['name01'] ." 様", "5", $objPage, $CONF["email03"], $CONF["shop_name"], $CONF["email02"]); 
     175        $helperMail->sfSendTemplateMail($objPage->arrForm['email']['value'], $objPage->arrForm['name01']['value'] ." 様", "5", $objPage, $CONF["email03"], $CONF["shop_name"], $CONF["email02"]); 
    246176    } 
    247177} 
Note: See TracChangeset for help on using the changeset viewer.