Ignore:
Timestamp:
2011/02/11 18:57:52 (15 years ago)
Author:
kimoto
Message:

LC_Page_Mypage_Change リファクタリング #981

  • LC_Page_Entryと処理を共通化
  • SC_Helper_Customerを拡張したので顧客管理画面でも使ってください
Location:
branches/version-2_5-dev/data/class
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/helper/SC_Helper_Customer.php

    r20116 r20147  
    9090    function sfEditCustomerData($array, $customer_id = null) { 
    9191        $objQuery =& SC_Query::getSingletonInstance(); 
     92        $objQuery->begin(); 
    9293 
    9394        $array["update_date"] = "now()";    // 更新日 
     
    133134            $objQuery->insert("dtb_customer", $array); 
    134135        } 
     136 
     137        $objQuery->commit(); 
    135138        return $customer_id; 
    136139    } 
     
    214217 
    215218    /** 
     219     * customer_idから顧客情報を取得する 
     220     * 
     221     * @param mixed $customer_id 
     222     * @param mixed $mask_flg 
     223     * @access public 
     224     * @return array 顧客情報の配列を返す 
     225     */ 
     226    function sfGetCustomerData($customer_id, $mask_flg = true) { 
     227        $objQuery       =& SC_Query::getSingletonInstance(); 
     228 
     229        // 顧客情報DB取得 
     230        $ret        = $objQuery->select("*","dtb_customer","customer_id=?", array($customer_id)); 
     231        $arrForm    = $ret[0]; 
     232 
     233        // 確認項目に複製 
     234        $arrForm['email02'] = $arrForm['email']; 
     235        $arrForm['email_mobile02'] = $arrForm['email_mobile']; 
     236 
     237        // 誕生日を年月日に分ける 
     238        if (isset($arrForm['birth'])){ 
     239            $birth = split(" ", $arrForm["birth"]); 
     240            list($arrForm['year'], $arrForm['month'], $arrForm['day']) = split("-",$birth[0]); 
     241        } 
     242 
     243        if ($mask_flg) { 
     244            $arrForm['password']          = DEFAULT_PASSWORD; 
     245            $arrForm['password02']        = DEFAULT_PASSWORD; 
     246            $arrForm['reminder_answer']   = DEFAULT_PASSWORD; 
     247        } 
     248        return $arrForm; 
     249    } 
     250 
     251    /** 
    216252     * sfGetUniqSecretKey 
    217253     * 
     
    251287    } 
    252288 
     289 
     290    function sfCustomerEntryParam (&$objFormParam) { 
     291        SC_Helper_Customer_Ex::sfCustomerCommonParam($objFormParam); 
     292    } 
     293 
     294    function sfCustomerMypageParam (&$objFormParam) { 
     295        SC_Helper_Customer_Ex::sfCustomerCommonParam($objFormParam); 
     296        if (SC_Display::detectDevice() !== DEVICE_TYPE_MOBILE){ 
     297            $objFormParam->addParam('携帯メールアドレス', "email_mobile", MTEXT_LEN, "a", array("NO_SPTAB", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
     298            $objFormParam->addParam('携帯メールアドレス(確認)', "email_mobile02", MTEXT_LEN, "a", array("NO_SPTAB", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"), "", false); 
     299        } 
     300    } 
     301 
     302    function sfCustomerCommonParam (&$objFormParam) { 
     303 
     304        $objFormParam->addParam("お名前(姓)", 'name01', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     305        $objFormParam->addParam("お名前(名)", 'name02', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
     306        $objFormParam->addParam("お名前(フリガナ・姓)", 'kana01', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
     307        $objFormParam->addParam("お名前(フリガナ・名)", 'kana02', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
     308        $objFormParam->addParam("パスワード", 'password', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK")); 
     309        $objFormParam->addParam("パスワード確認用の質問", "reminder", STEXT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
     310        $objFormParam->addParam("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
     311        $objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     312        $objFormParam->addParam("郵便番号2", "zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     313        $objFormParam->addParam("都道府県", 'pref', INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK")); 
     314        $objFormParam->addParam("住所1", "addr01", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     315        $objFormParam->addParam("住所2", "addr02", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     316        $objFormParam->addParam("お電話番号1", 'tel01', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
     317        $objFormParam->addParam("お電話番号2", 'tel02', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
     318        $objFormParam->addParam("お電話番号3", 'tel03', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
     319        $objFormParam->addParam("性別", "sex", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
     320        $objFormParam->addParam("職業", "job", INT_LEN, "n", array("NUM_CHECK")); 
     321        $objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
     322        $objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
     323        $objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
     324        $objFormParam->addParam("メールマガジン", "mailmaga_flg", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
     325 
     326        if (SC_Display::detectDevice() !== DEVICE_TYPE_MOBILE){ 
     327            $objFormParam->addParam("FAX番号1", 'fax01', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
     328            $objFormParam->addParam("FAX番号2", 'fax02', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
     329            $objFormParam->addParam("FAX番号3", 'fax03', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
     330            $objFormParam->addParam("パスワード(確認)", 'password02', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK"), "", false); 
     331            $objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
     332            $objFormParam->addParam('メールアドレス(確認)', "email02", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"), "", false); 
     333        } else { 
     334            $objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK","MOBILE_EMAIL_CHECK")); 
     335        } 
     336    } 
     337 
     338    function sfCustomerEntryErrorCheck(&$objFormParam) { 
     339        $objErr->arrErr = SC_Helper_Customer_Ex::sfCustomerCommonErrorCheck(&$objFormParam); 
     340        return $objErr->arrErr; 
     341    } 
     342 
     343    function sfCustomerMypageErrorCheck(&$objFormParam) { 
     344 
     345        $objFormParam->toLower('email_mobile'); 
     346        $objFormParam->toLower('email_mobile02'); 
     347 
     348        $objErr->arrErr = SC_Helper_Customer_Ex::sfCustomerCommonErrorCheck($objFormParam); 
     349 
     350        if (isset($objErr->arrErr['password']) && $objFormParam->getValue('password') == DEFAULT_PASSWORD) { 
     351            unset($objErr->arrErr['password']); 
     352            unset($objErr->arrErr['password02']); 
     353        } 
     354        if (isset($objErr->arrErr['reminder_answer']) && $objFormParam->getValue('reminder_answer') == DEFAULT_PASSWORD) { 
     355            unset($objErr->arrErr['reminder_answer']); 
     356        } 
     357        return $objErr->arrErr; 
     358    } 
     359 
     360    /** 
     361     * 入力エラーチェック 
     362     * 
     363     * @param mixed $objFormParam 
     364     * @access private 
     365     * @return array エラー情報の配列 
     366     */ 
     367    function sfCustomerCommonErrorCheck(&$objFormParam) { 
     368        $objFormParam->convParam(); 
     369        $objFormParam->toLower('email'); 
     370        $objFormParam->toLower('email02'); 
     371        $arrParams = $objFormParam->getHashArray(); 
     372 
     373        // 入力データを渡す。 
     374        $objErr = new SC_CheckError($arrParams); 
     375        $objErr->arrErr = $objFormParam->checkError(); 
     376 
     377        $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03"),array("TEL_CHECK")); 
     378        $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 
     379        $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 
     380 
     381        if (SC_Display::detectDevice() !== DEVICE_TYPE_MOBILE){ 
     382            $objErr->doFunc(array('パスワード', 'パスワード(確認)', "password", "password02") ,array("EQUAL_CHECK")); 
     383            $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 
     384            $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 
     385        } 
     386 
     387        // 現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 
     388        $objErr->doFunc(array("メールアドレス", "email"), array("CHECK_REGIST_CUSTOMER_EMAIL")); 
     389 
     390        return $objErr->arrErr; 
     391    } 
     392 
     393 
     394 
    253395} 
  • branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php

    r20116 r20147  
    6969    } 
    7070 
    71     /* パラメータ情報の初期化 */ 
    72     function lfInitParam(&$objFormParam) { 
    73  
    74         $objFormParam->addParam("お名前(姓)", 'name01', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    75         $objFormParam->addParam("お名前(名)", 'name02', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    76         $objFormParam->addParam("お名前(フリガナ・姓)", 'kana01', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    77         $objFormParam->addParam("お名前(フリガナ・名)", 'kana02', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    78         $objFormParam->addParam("パスワード", 'password', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK")); 
    79         $objFormParam->addParam("パスワード確認用の質問", "reminder", STEXT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
    80         $objFormParam->addParam("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    81         $objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    82         $objFormParam->addParam("郵便番号2", "zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    83         $objFormParam->addParam("都道府県", 'pref', INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK")); 
    84         $objFormParam->addParam("住所1", "addr01", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    85         $objFormParam->addParam("住所2", "addr02", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    86         $objFormParam->addParam("お電話番号1", 'tel01', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
    87         $objFormParam->addParam("お電話番号2", 'tel02', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
    88         $objFormParam->addParam("お電話番号3", 'tel03', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
    89         $objFormParam->addParam("性別", "sex", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
    90         $objFormParam->addParam("職業", "job", INT_LEN, "n", array("NUM_CHECK")); 
    91         $objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    92         $objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    93         $objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    94         $objFormParam->addParam("メールマガジン", "mailmaga_flg", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
    95  
    96         if (SC_Display::detectDevice() !== DEVICE_TYPE_MOBILE){ 
    97             $objFormParam->addParam("FAX番号1", 'fax01', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
    98             $objFormParam->addParam("FAX番号2", 'fax02', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
    99             $objFormParam->addParam("FAX番号3", 'fax03', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
    100             $objFormParam->addParam("パスワード(確認)", 'password02', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK"), "", false); 
    101             $objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    102             $objFormParam->addParam('メールアドレス(確認)', "email02", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"), "", false); 
    103         } else { 
    104             $objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK","MOBILE_EMAIL_CHECK")); 
    105         } 
    106     } 
    107  
    10871    /** 
    10972     * Page のプロセス 
     
    11376        $objFormParam = new SC_FormParam(); 
    11477 
    115         $this->lfInitParam($objFormParam); 
     78        SC_Helper_Customer_Ex::sfCustomerEntryParam($objFormParam); 
    11679        $objFormParam->setParam($_POST); 
    11780        $this->arrForm  = $objFormParam->getHashArray(); 
     
    13699        case 'confirm': 
    137100            //-- 確認 
    138             $this->arrErr = $this->lfErrorCheck($objFormParam); 
     101            $this->arrErr = SC_Helper_Customer_Ex::sfCustomerEntryErrorCheck($objFormParam); 
    139102            // 入力エラーなし 
    140103            if(empty($this->arrErr)) { 
     
    148111        case 'complete': 
    149112            //-- 会員登録と完了画面 
    150             $this->arrErr = $this->lfErrorCheck($objFormParam); 
     113            $this->arrErr = SC_Helper_Customer_Ex::sfCustomerEntryErrorCheck($objFormParam); 
    151114            if(empty($this->arrErr)) { 
    152115 
     
    193156     */ 
    194157    function lfRegistCustomerData($sqlval) { 
    195         $objQuery   = SC_Query::getSingletonInstance(); 
    196         //-- 登録実行 
    197         $objQuery->begin(); 
    198158        SC_Helper_Customer_Ex::sfEditCustomerData($sqlval); 
    199         $objQuery->commit(); 
    200  
    201159        return $sqlval["secret_key"]; 
    202160    } 
     
    291249 
    292250    /** 
    293      * lfErrorCheck 
    294      * 
    295      * 入力エラーチェック 
    296      * 
    297      * @param mixed $objFormParam 
    298      * @access private 
    299      * @return array エラー情報の配列 
    300      */ 
    301     function lfErrorCheck(&$objFormParam) { 
    302         $objFormParam->convParam(); 
    303         $objFormParam->toLower('email'); 
    304         $objFormParam->toLower('email02'); 
    305  
    306         // 入力データを渡す。 
    307         $objErr = new SC_CheckError(); 
    308         $objErr->arrErr = $objFormParam->checkError(); 
    309  
    310         $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03"),array("TEL_CHECK")); 
    311         $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 
    312         $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 
    313  
    314         if (SC_Display::detectDevice() !== DEVICE_TYPE_MOBILE){ 
    315             $objErr->doFunc(array('パスワード', 'パスワード(確認)', "password", "password02") ,array("EQUAL_CHECK")); 
    316             $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 
    317             $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 
    318         } 
    319  
    320         // 現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 
    321         $objErr->doFunc(array("メールアドレス", "email"), array("CHECK_REGIST_CUSTOMER_EMAIL")); 
    322  
    323         return $objErr->arrErr; 
    324     } 
    325  
    326     /** 
    327251     * kiyaku.php からの遷移の妥当性をチェックする 
    328252     * 
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php

    r20116 r20147  
    2323 
    2424// {{{ requires 
    25 require_once(CLASS_REALDIR . "pages/LC_Page.php"); 
     25require_once(CLASS_REALDIR . "pages/mypage/LC_Page_AbstractMypage.php"); 
    2626 
    2727/** 
     
    3232 * @version $Id$ 
    3333 */ 
    34 class LC_Page_Mypage_Change extends LC_Page { 
     34class LC_Page_Mypage_Change extends LC_Page_AbstractMypage { 
    3535 
    3636 
     
    4545    function init() { 
    4646        parent::init(); 
    47         $this->tpl_title = 'MYページ'; 
    4847        $this->tpl_subtitle = '会員登録内容変更(入力ページ)'; 
    49         $this->tpl_navi = TEMPLATE_REALDIR . 'mypage/navi.tpl'; 
    50         $this->tpl_mainno = 'mypage'; 
    5148        $this->tpl_mypageno = 'change'; 
    5249 
    53         $masterData = new SC_DB_MasterData_Ex(); 
    54         $this->arrReminder = $masterData->getMasterData("mtb_reminder"); 
    55         $this->arrPref = $masterData->getMasterData('mtb_pref'); 
    56         $this->arrJob = $masterData->getMasterData("mtb_job"); 
     50        $masterData         = new SC_DB_MasterData_Ex(); 
     51        $this->arrReminder  = $masterData->getMasterData("mtb_reminder"); 
     52        $this->arrPref      = $masterData->getMasterData('mtb_pref'); 
     53        $this->arrJob       = $masterData->getMasterData("mtb_job"); 
    5754        $this->arrMAILMAGATYPE = $masterData->getMasterData("mtb_mail_magazine_type"); 
    58         $this->arrSex = $masterData->getMasterData("mtb_sex"); 
     55        $this->arrSex       = $masterData->getMasterData("mtb_sex"); 
    5956        $this->httpCacheControl('nocache'); 
    6057 
    6158        // 生年月日選択肢の取得 
    62         $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 
    63         $this->arrYear = $objDate->getYear('', 1950, ''); 
    64         $this->arrMonth = $objDate->getMonth(true); 
    65         $this->arrDay = $objDate->getDay(true); 
    66  
    67         $this->isMobile = Net_UserAgent_Mobile::isMobile(); 
     59        $objDate            = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 
     60        $this->arrYear      = $objDate->getYear('', 1950, ''); 
     61        $this->arrMonth     = $objDate->getMonth(true); 
     62        $this->arrDay       = $objDate->getDay(true); 
    6863    } 
    6964 
     
    7469     */ 
    7570    function process() { 
    76         $this->action(); 
    77         $this->sendResponse(); 
     71        parent::process(); 
    7872    } 
    7973 
     
    8377     */ 
    8478    function action() { 
    85         $objDb = new SC_Helper_DB_Ex(); 
    86         $CONF = $objDb->sfGetBasisData(); 
    87  
    88         $objQuery = new SC_Query(); 
    8979        $objCustomer = new SC_Customer(); 
    90  
    91         // ログインチェック 
    92         if (!$objCustomer->isLoginSuccess(true)){ 
    93             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    94         }else { 
    95             //マイページトップ顧客情報表示用 
    96             $this->tpl_login = true; 
    97             $this->CustomerName1 = $objCustomer->getvalue('name01'); 
    98             $this->CustomerName2 = $objCustomer->getvalue('name02'); 
    99             $this->CustomerPoint = $objCustomer->getvalue('point'); 
    100         } 
     80        $customer_id = $objCustomer->getValue('customer_id'); 
    10181 
    10282        // mobile用(戻るボタンでの遷移かどうかを判定) 
     
    10686 
    10787        // パラメータ管理クラス,パラメータ情報の初期化 
    108         $this->objFormParam = new SC_FormParam(); 
    109         $this->lfInitParam(); 
    110         $this->objFormParam->setParam($_POST);    // POST値の取得 
     88        $objFormParam = new SC_FormParam(); 
     89        SC_Helper_Customer_Ex::sfCustomerMypageParam($objFormParam); 
     90        $objFormParam->setParam($_POST);    // POST値の取得 
    11191 
     92        $this->arrForm = $objFormParam->getHashArray(); 
    11293 
    113         if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     94        switch ($this->getMode()) { 
     95        case 'confirm': 
     96        //-- 確認 
     97            $this->arrErr = SC_Helper_Customer_Ex::sfCustomerMypageErrorCheck($objFormParam); 
     98            // 入力エラーなし 
     99            if(empty($this->arrErr)) { 
     100                //パスワード表示 
     101                $this->passlen      = SC_Utils_Ex::sfPassLen(strlen($this->arrForm['password'])); 
    114102 
    115             //CSRF対策 
    116             /* 
    117             if (!SC_Helper_Session_Ex::isValidToken()) { 
    118                 SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); 
     103                $this->tpl_mainpage = 'mypage/change_confirm.tpl'; 
     104                $this->tpl_title    = '会員登録(確認ページ)'; 
    119105            } 
    120             */ 
     106            break; 
     107        case 'complete': 
     108            //-- 会員登録と完了画面 
    121109 
    122             $this->objFormParam->convParam(); 
    123             $this->objFormParam->toLower('email'); 
    124             $this->objFormParam->toLower('email02'); 
    125             $this->objFormParam->toLower('email_mobile'); 
    126             $this->objFormParam->toLower('email_mobile02'); 
    127             $this->arrForm = $this->objFormParam->getHashArray(); 
     110            // 会員情報の登録 
     111            $this->lfRegistCustomerData($objFormParam, $customer_id); 
    128112 
    129  
    130             switch ($this->getMode()) { 
    131             case 'confirm': 
    132             //-- 確認 
    133                 $this->arrErr = $this->lfErrorCheck(); 
    134  
    135                 // 入力エラーなし 
    136                 if(count($this->arrErr) == 0) { 
    137  
    138                     $this->list_data = $this->objFormParam->getHashArray(); 
    139  
    140                     //パスワード表示 
    141                     $passlen = strlen($this->arrForm['password']); 
    142                     $this->passlen = SC_Utils_Ex::sfPassLen($passlen); 
    143  
    144                     $this->tpl_mainpage = 'mypage/change_confirm.tpl'; 
    145                     $this->tpl_title = '会員登録(確認ページ)'; 
    146                 } 
    147                 break; 
    148             case 'complete': 
    149                 //-- 会員登録と完了画面 
    150  
    151                 // 会員情報の登録 
    152                 $this->CONF = $CONF; 
    153                 $this->lfRegistData(); 
    154  
    155                 // 完了ページに移動させる。 
    156                 SC_Response_Ex::sendRedirect('change_complete.php'); 
    157                 exit; 
    158                 break; 
    159             default: 
    160                 break; 
    161             } 
    162         } else { 
    163             $this->arrForm = $this->lfGetCustomerData(); 
    164             $this->arrForm['password'] = DEFAULT_PASSWORD; 
    165             $this->arrForm['password02'] = DEFAULT_PASSWORD; 
    166             $this->arrForm['reminder_answer'] = DEFAULT_PASSWORD; 
     113            // 完了ページに移動させる。 
     114            SC_Response_Ex::sendRedirect('change_complete.php'); 
     115            break; 
     116        case 'return': 
     117            break; 
     118        default: 
     119            $this->arrForm = SC_Helper_Customer_Ex::sfGetCustomerData($customer_id); 
     120            break; 
    167121        } 
    168         $this->transactionid = SC_Helper_Session_Ex::getToken(); 
    169122    } 
    170123 
     
    178131    } 
    179132 
    180     /* パラメータ情報の初期化 */ 
    181     function lfInitParam() { 
     133    /** 
     134     *  会員情報を登録する 
     135     * 
     136     * @param mixed $objFormParam 
     137     * @param mixed $customer_id 
     138     * @access private 
     139     * @return void 
     140     */ 
     141    function lfRegistCustomerData(&$objFormParam, $customer_id) { 
     142        $arrRet             = $objFormParam->getHashArray(); 
     143        $sqlval             = $objFormParam->getDbArray(); 
     144        $sqlval['birth']    = SC_Utils_Ex::sfGetTimestamp($arrRet['year'], $arrRet['month'], $arrRet['day']); 
    182145 
    183         $this->objFormParam->addParam("お名前(姓)", 'name01', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    184         $this->objFormParam->addParam("お名前(名)", 'name02', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    185         $this->objFormParam->addParam("お名前(フリガナ・姓)", 'kana01', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    186         $this->objFormParam->addParam("お名前(フリガナ・名)", 'kana02', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    187         $this->objFormParam->addParam("パスワード", 'password', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK")); 
    188         $this->objFormParam->addParam("パスワード確認用の質問", "reminder", STEXT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
    189         $this->objFormParam->addParam("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    190         $this->objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    191         $this->objFormParam->addParam("郵便番号2", "zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    192         $this->objFormParam->addParam("都道府県", 'pref', INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK")); 
    193         $this->objFormParam->addParam("住所1", "addr01", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    194         $this->objFormParam->addParam("住所2", "addr02", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    195         $this->objFormParam->addParam("お電話番号1", 'tel01', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
    196         $this->objFormParam->addParam("お電話番号2", 'tel02', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
    197         $this->objFormParam->addParam("お電話番号3", 'tel03', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
    198         $this->objFormParam->addParam("性別", "sex", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
    199         $this->objFormParam->addParam("職業", "job", INT_LEN, "n", array("NUM_CHECK")); 
    200         $this->objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    201         $this->objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    202         $this->objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    203         $this->objFormParam->addParam("メールマガジン", "mailmaga_flg", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
    204  
    205         if ($this->isMobile === false){ 
    206             $this->objFormParam->addParam("FAX番号1", 'fax01', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
    207             $this->objFormParam->addParam("FAX番号2", 'fax02', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
    208             $this->objFormParam->addParam("FAX番号3", 'fax03', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
    209             $this->objFormParam->addParam("パスワード(確認)", 'password02', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK"), "", false); 
    210             $this->objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    211             $this->objFormParam->addParam('メールアドレス(確認)', "email02", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"), "", false); 
    212             $this->objFormParam->addParam('携帯メールアドレス', "email_mobile", MTEXT_LEN, "a", array("NO_SPTAB", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    213             $this->objFormParam->addParam('携帯メールアドレス(確認)', "email_mobile02", MTEXT_LEN, "a", array("NO_SPTAB", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"), "", false); 
    214         } else { 
    215             $this->objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK","MOBILE_EMAIL_CHECK")); 
    216         } 
     146        SC_Helper_Customer_Ex::sfEditCustomerData($sqlval, $customer_id); 
    217147    } 
    218  
    219     //---- 入力エラーチェック 
    220     function lfErrorCheck($array) { 
    221  
    222         // 入力データを渡す。 
    223         $arrRet = $this->objFormParam->getHashArray(); 
    224         $objErr = new SC_CheckError($arrRet); 
    225         $objErr->arrErr = $this->objFormParam->checkError(); 
    226         if(isset($objErr->arrErr['password']) and $arrRet['password'] == DEFAULT_PASSWORD) { 
    227             unset($objErr->arrErr['password']); 
    228             unset($objErr->arrErr['password02']); 
    229         } 
    230         if(isset($objErr->arrErr['reminder_answer']) and $arrRet['reminder_answer'] == DEFAULT_PASSWORD) { 
    231             unset($objErr->arrErr['reminder_answer']); 
    232         } 
    233  
    234         $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03"),array("TEL_CHECK")); 
    235         $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 
    236         $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 
    237         if ($this->isMobile === false){ 
    238             if( $arrRet['password'] != DEFAULT_PASSWORD ) { 
    239                 $objErr->doFunc(array('パスワード', 'パスワード(確認)', "password", "password02") ,array("EQUAL_CHECK")); 
    240             } 
    241             $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 
    242             $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 
    243         } 
    244  
    245         // 現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 
    246         $register_user_flg = SC_Helper_Customer_Ex::sfCheckRegisterUserFromEmail($arrRet["email"]); 
    247         switch($register_user_flg) { 
    248             case 1: 
    249                 $objErr->arrErr["email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />"; 
    250                 break; 
    251             case 2: 
    252                 $objErr->arrErr["email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />"; 
    253                 break; 
    254             default: 
    255                 break; 
    256         } 
    257         return $objErr->arrErr; 
    258     } 
    259  
    260     function lfRegistData() { 
    261  
    262         $objQuery = new SC_Query(); 
    263         $objCustomer = new SC_Customer(); 
    264  
    265         $arrRet = $this->objFormParam->getHashArray(); 
    266  
    267         // 登録データの作成 
    268         $sqlval = $this->objFormParam->getDbArray(); 
    269         $sqlval['birth'] = SC_Utils_Ex::sfGetTimestamp($arrRet['year'], $arrRet['month'], $arrRet['day']); 
    270  
    271         $objQuery->begin(); 
    272         SC_Helper_Customer_Ex::sfEditCustomerData($sqlval, $objCustomer->getValue('customer_id')); 
    273         $objQuery->commit(); 
    274     } 
    275  
    276     /** 
    277      * 顧客情報の取得 
    278      * 
    279      * @return array 顧客情報 
    280      */ 
    281     function lfGetCustomerData(){ 
    282         $objQuery = new SC_Query(); 
    283         $objCustomer = new SC_Customer(); 
    284  
    285         // 顧客情報DB取得 
    286         $ret = $objQuery->select("*","dtb_customer","customer_id=?", array($objCustomer->getValue('customer_id'))); 
    287         $arrForm = $ret[0]; 
    288  
    289         // 確認項目に複製 
    290         $arrForm['email02'] = $arrForm['email']; 
    291         $arrForm['email_mobile02'] = $arrForm['email_mobile']; 
    292  
    293         // 誕生日を年月日に分ける 
    294         if (isset($arrForm['birth'])){ 
    295             $birth = split(" ", $arrForm["birth"]); 
    296             list($arrForm['year'], $arrForm['month'], $arrForm['day']) = split("-",$birth[0]); 
    297         } 
    298         return $arrForm; 
    299     } 
    300  
    301     //エラー、戻る時にフォームに入力情報を返す 
    302     function lfFormReturn($array, &$objPage){ 
    303         foreach($array as $key => $val){ 
    304             switch ($key){ 
    305             case 'password': 
    306             case 'password02': 
    307                 $objPage->$key = $val; 
    308                 break; 
    309             default: 
    310                 $array[ $key ] = $val; 
    311                 break; 
    312             } 
    313         } 
    314     } 
    315  
    316148} 
    317 ?> 
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_ChangeComplete.php

    r20116 r20147  
    2323 
    2424// {{{ requires 
    25 require_once(CLASS_REALDIR . "pages/LC_Page.php"); 
     25require_once(CLASS_REALDIR . "pages/mypage/LC_Page_AbstractMypage.php"); 
    2626 
    2727/** 
     
    3232 * @version $Id$ 
    3333 */ 
    34 class LC_Page_Mypage_ChangeComplete extends LC_Page { 
     34class LC_Page_Mypage_ChangeComplete extends LC_Page_AbstractMypage { 
    3535 
    3636    // }}} 
     
    4444    function init() { 
    4545        parent::init(); 
    46         $this->tpl_title = 'MYページ'; 
    4746        $this->tpl_subtitle = '会員登録内容変更(完了ページ)'; 
    48         $this->tpl_navi = TEMPLATE_REALDIR . 'mypage/navi.tpl'; 
    4947        $this->tpl_mypageno = 'change'; 
    5048    } 
     
    5755    function process() { 
    5856        parent::process(); 
    59         $this->action(); 
    60         $this->sendResponse(); 
    6157    } 
    6258 
     
    6864    function action() { 
    6965        $objCustomer = new SC_Customer(); 
    70  
    7166        //セッション情報を最新の状態に更新する 
    7267        $objCustomer->updateSession(); 
    73  
    74         //ログイン判定 
    75         if (!$objCustomer->isLoginSuccess(true)){ 
    76             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    77         }else { 
    78             //マイページトップ顧客情報表示用 
    79             $this->tpl_login = true; 
    80             $this->CustomerName1 = $objCustomer->getvalue('name01'); 
    81             $this->CustomerName2 = $objCustomer->getvalue('name02'); 
    82             $this->CustomerPoint = $objCustomer->getvalue('point'); 
    83         } 
    8468    } 
    8569 
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Delivery.php

    r20116 r20147  
    2323 
    2424// {{{ requires 
    25 require_once(CLASS_REALDIR . "pages/LC_Page.php"); 
     25require_once(CLASS_REALDIR . "pages/mypage/LC_Page_AbstractMypage.php"); 
    2626 
    2727/** 
     
    3232 * @version $Id$ 
    3333 */ 
    34 class LC_Page_Mypage_Delivery extends LC_Page { 
     34class LC_Page_Mypage_Delivery extends LC_Page_AbstractMypage { 
    3535 
    3636    // }}} 
     
    4444    function init() { 
    4545        parent::init(); 
    46         $this->tpl_title = 'MYページ'; 
    4746        $this->tpl_subtitle = 'お届け先追加・変更'; 
    48         $this->tpl_navi = TEMPLATE_REALDIR . 'mypage/navi.tpl'; 
    49         $this->tpl_mainno = 'mypage'; 
    5047        $this->tpl_mypageno = 'delivery'; 
    51         $masterData = new SC_DB_MasterData_Ex(); 
    52         $this->arrPref= $masterData->getMasterData('mtb_pref'); 
     48        $masterData         = new SC_DB_MasterData_Ex(); 
     49        $this->arrPref      = $masterData->getMasterData('mtb_pref'); 
    5350        $this->httpCacheControl('nocache'); 
    5451    } 
     
    6158    function process() { 
    6259        parent::process(); 
    63         $this->action(); 
    64         $this->sendResponse(); 
    6560    } 
    6661 
     
    7166     */ 
    7267    function action() { 
    73         //$objView = new SC_SiteView(); 
    74         $objCustomer = new SC_Customer(); 
     68        $objCustomer    = new SC_Customer(); 
     69        $customer_id    = $objCustomer->getValue('customer_id'); 
     70        $objFormParam   = new SC_FormParam(); 
    7571 
    76         // 退会判定用情報の取得 
    77         $this->tpl_login = $objCustomer->isLoginSuccess(); 
     72        $this->lfInitParam($objFormParam); 
     73        $objFormParam->setParam($_POST); 
     74        $objFormParam->convParam(); 
    7875 
    79         // ポップアップを開けたまま退会された状態でポップアップが閉じた場合のエラー画面の抑止。 
    80         // コメントアウトした「ログイン判定」は他の「Mypage」内に施した退会時処理で補間。 
    81  
    82         // XXX コメントアウトによる問題が確認された場合はコメントアウトを外し、エラー画面が出る様に戻す。 
    83         ////ログイン判定 
    84         // if(!$objCustomer->isLoginSuccess()) { 
    85         //     SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    86         // }else { 
    87             //マイページトップ顧客情報表示用 
    88             $this->CustomerName1 = $objCustomer->getvalue('name01'); 
    89             $this->CustomerName2 = $objCustomer->getvalue('name02'); 
    90             $this->CustomerPoint = $objCustomer->getvalue('point'); 
    91         //} 
    92  
    93         $customerId = $objCustomer->getValue('customer_id'); 
    9476        switch($this->getMode()) { 
    9577 
    9678        // お届け先の削除 
    9779        case 'delete': 
    98             $objForm = $this->initParam(); 
    99             if ($objForm->checkError()) { 
     80            if ($objFormParam->checkError()) { 
    10081                SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    10182                exit; 
    10283            } 
    10384 
    104             $this->deleteOtherDeliv($customerId, $objForm->getValue('other_deliv_id')); 
     85            $this->deleteOtherDeliv($customer_id, $objFormParam->getValue('other_deliv_id')); 
    10586            break; 
    10687 
     
    11192 
    11293        //別のお届け先情報 
    113         $this->arrOtherDeliv = $this->getOtherDeliv($customerId); 
     94        $this->arrOtherDeliv = $this->getOtherDeliv($customer_id); 
    11495 
    11596        //お届け先登録数 
    116         $this->tpl_linemax = count($this->arrOtherDeliv);; 
    117  
    118         //$objView->assignobj($this); 
    119         //$objView->display(SITE_FRAME); 
     97        $this->tpl_linemax = count($this->arrOtherDeliv); 
    12098    } 
    12199 
     
    134112     * @return SC_FormParam 
    135113     */ 
    136     function initParam() { 
    137         $objForm = new SC_FormParam(); 
    138         $objForm->addParam('お届け先ID', 'other_deliv_id', INT_LEN, '', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    139         $objForm->setParam($_POST); 
    140         $objForm->convParam(); 
    141         return $objForm; 
     114    function lfInitParam(&$objFormParam) { 
     115        $objFormParam->addParam('お届け先ID', 'other_deliv_id', INT_LEN, '', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    142116    } 
    143117 
     
    148122     * @return array 
    149123     */ 
    150     function getOtherDeliv($customerId) { 
    151         $objQuery = new SC_Query; 
     124    function getOtherDeliv($customer_id) { 
     125        $objQuery   =& SC_Query::getSingletonInstance(); 
    152126        $objQuery->setOrder('other_deliv_id DESC'); 
    153         $arrRet = $objQuery->select('*', 'dtb_other_deliv', 'customer_id = ?', array($customerId)); 
    154         return empty($arrRet) ? array() : $arrRet; 
     127        return $objQuery->select('*', 'dtb_other_deliv', 'customer_id = ?', array($customer_id)); 
    155128    } 
    156129 
     
    161134     * @param integer $delivId 
    162135     */ 
    163     function deleteOtherDeliv($customerId, $delivId) { 
    164         $where = 'customer_id = ? AND other_deliv_id = ?'; 
    165         $objQuery = new SC_Query; 
    166         $objQuery->delete("dtb_other_deliv", $where, array($customerId, $delivId)); 
     136    function deleteOtherDeliv($customer_id, $deliv_id) { 
     137        $where      = 'customer_id = ? AND other_deliv_id = ?'; 
     138        $objQuery   =& SC_Query::getSingletonInstance(); 
     139        $objQuery->delete("dtb_other_deliv", $where, array($customer_id, $deliv_id)); 
    167140    } 
    168141} 
    169 ?> 
Note: See TracChangeset for help on using the changeset viewer.