Ignore:
Timestamp:
2013/01/21 17:23:41 (11 years ago)
Author:
m_uehara
Message:

#2036 入力エラーの際、エラー画面を表示するように修正を行いました。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php

    r22206 r22294  
    7373        $objFormParam = new SC_FormParam_Ex(); 
    7474        $this->lfInitParam($mode, $objFormParam); 
    75         $objFormParam->setParam($_REQUEST); 
     75        $objFormParam->setParam($_POST); 
    7676        $objFormParam->convParam(); 
    77         $this->arrErr = $this->lfCheckError($mode, $objFormParam); 
    78         $is_error = (!SC_Utils_Ex::isBlank($this->arrErr)); 
    79  
    80         $this->kiyaku_id = $objFormParam->getValue('kiyaku_id'); 
    81         if ($is_error) { 
    82             trigger_error('', E_USER_ERROR); 
    83             return; 
    84         } 
     77 
     78        $kiyaku_id = $objFormParam->getValue('kiyaku_id'); 
    8579 
    8680        // 要求判定 
     
    8882            // 編集処理 
    8983            case 'confirm': 
     84                // エラーチェック 
     85                $this->arrErr = $this->lfCheckError($objFormParam); 
     86                if (!SC_Utils_Ex::isBlank($this->arrErr['kiyaku_id'])) { 
     87                    trigger_error('', E_USER_ERROR); 
     88                    return; 
     89                } 
     90 
    9091                // POST値の引き継ぎ 
    91                 $this->arrForm = $_POST; 
    92  
    93                 if (!$is_error) { 
    94                     if ($this->kiyaku_id == '') { 
    95                         $result = $this->lfInsertClass($this->arrForm, $_SESSION['member_id']);    // 新規作成 
     92                $arrParam = $objFormParam->getHashArray(); 
     93                if (SC_Utils_Ex::isBlank($this->arrErr)) { 
     94                    if (SC_Utils_Ex::isBlank($kiyaku_id)) { 
     95                        $res_kiyaku_id = $this->lfInsertClass($arrParam, $_SESSION['member_id']);    // 新規作成 
    9696                    } else { 
    97                         $result = $this->lfUpdateClass($this->arrForm, $this->kiyaku_id);    // 既存編集 
     97                        $res_kiyaku_id = $this->lfUpdateClass($arrParam, $kiyaku_id);    // 既存編集 
    9898                    } 
    9999 
    100                     if ($result !== FALSE) { 
    101                         $arrPram = array( 
    102                             'kiyaku_id' => $result, 
    103                             'msg' => 'on', 
    104                         ); 
    105  
    106                         SC_Response_Ex::reload($arrPram, true); 
    107                         SC_Response_Ex::actionExit(); 
     100                    if ($res_kiyaku_id !== FALSE) { 
     101                        // 完了メッセージ 
     102                        $kiyaku_id = $res_kiyaku_id; 
     103                        $this->tpl_onload = "alert('登録が完了しました。');"; 
    108104                    } 
    109105                } 
     106 
     107                // 編集中の規約IDを渡す 
     108                $this->tpl_kiyaku_id = $kiyaku_id; 
    110109                break; 
    111110            // 削除 
    112111            case 'delete': 
    113                 $objDb->sfDeleteRankRecord('dtb_kiyaku', 'kiyaku_id', $this->kiyaku_id, '', true); 
     112                $objDb->sfDeleteRankRecord('dtb_kiyaku', 'kiyaku_id', $kiyaku_id, '', true); 
     113                break; 
     114 
     115            // 編集前処理 
     116            case 'pre_edit': 
     117                // 編集項目を取得する。 
     118                $arrKiyakuData = $this->lfGetKiyakuDataByKiyakuID($kiyaku_id); 
     119                $objFormParam->setParam($arrKiyakuData[0]); 
     120 
     121                // 編集中の規約IDを渡す 
     122                $this->tpl_kiyaku_id = $kiyaku_id; 
     123                break; 
     124 
     125            case 'down': 
     126                $objDb->sfRankDown('dtb_kiyaku', 'kiyaku_id', $kiyaku_id); 
    114127 
    115128                // 再表示 
    116129                $this->objDisplay->reload(); 
    117130                break; 
    118             case 'down': 
    119                 $objDb->sfRankDown('dtb_kiyaku', 'kiyaku_id', $this->kiyaku_id); 
     131 
     132            case 'up': 
     133                $objDb->sfRankUp('dtb_kiyaku', 'kiyaku_id', $kiyaku_id); 
    120134 
    121135                // 再表示 
    122136                $this->objDisplay->reload(); 
    123137                break; 
    124             case 'up': 
    125                 $objDb->sfRankUp('dtb_kiyaku', 'kiyaku_id', $this->kiyaku_id); 
    126  
    127                 // 再表示 
    128                 $this->objDisplay->reload(); 
    129                 break; 
     138 
    130139            default: 
    131                 if (isset($_GET['msg']) && $_GET['msg'] == 'on') { 
    132                     // 完了メッセージ 
    133                     $this->tpl_onload = "alert('登録が完了しました。');"; 
    134                 } 
    135140                break; 
    136141        } 
     
    138143        $this->arrForm = $objFormParam->getFormParamList(); 
    139144 
    140         if (!$is_error) { 
    141             // 規約一覧を取得 
    142             $this->arrKiyaku = $this->lfGetKiyakuList(); 
    143             // kiyaku_id が指定されている場合には規約データの取得 
    144             if (!SC_Utils_Ex::isBlank($this->kiyaku_id)) { 
    145                 // 編集項目を取得する。 
    146                 $arrKiyakuData = $this->lfGetKiyakuDataByKiyakuID($this->kiyaku_id); 
    147  
    148                 // 入力項目にカテゴリ名を入力する。 
    149                 $this->arrForm['kiyaku_title'] = $arrKiyakuData[0]['kiyaku_title']; 
    150                 $this->arrForm['kiyaku_text'] = $arrKiyakuData[0]['kiyaku_text']; 
    151                 // POSTデータを引き継ぐ 
    152                 $this->tpl_kiyaku_id = $this->kiyaku_id; 
    153             } 
    154         } else { 
    155             // 画面にエラー表示しないため, ログ出力 
    156             GC_Utils_Ex::gfPrintLog('Error: ' . print_r($this->arrErr, true)); 
    157         } 
    158     } 
     145        // 規約一覧を取得 
     146        $this->arrKiyaku = $this->lfGetKiyakuList(); 
     147} 
    159148 
    160149    /** 
     
    215204        switch ($mode) { 
    216205            case 'confirm': 
     206            case 'pre_edit': 
    217207                $objFormParam->addParam('規約タイトル', 'kiyaku_title', SMTEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); 
    218208                $objFormParam->addParam('規約内容', 'kiyaku_text', MLTEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); 
     209                $objFormParam->addParam('規約ID', 'kiyaku_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     210                break; 
    219211            case 'delete': 
    220             case 'pre_edit': 
    221212            case 'down': 
    222213            case 'up': 
     
    233224     * @return array 
    234225     */ 
    235     function lfCheckError($mode, $objFormParam) { 
     226    function lfCheckError($objFormParam) { 
    236227        $arrErr = $objFormParam->checkError(); 
    237         if (!isset($arrErr['name']) && $mode == 'confirm') { 
    238             $post = $objFormParam->getHashArray(); 
    239             $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    240             $arrRet = $objQuery->select('kiyaku_id, kiyaku_title', 'dtb_kiyaku', 'del_flg = 0 AND kiyaku_title = ?', array($post['kiyaku_title'])); 
    241             // 編集中のレコード以外に同じ名称が存在する場合 
    242             if ($arrRet[0]['kiyaku_id'] != $post['kiyaku_id'] && $arrRet[0]['kiyaku_title'] == $post['kiyaku_title']) { 
    243                 $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br>'; 
    244             } 
     228        $arrForm = $objFormParam->getHashArray(); 
     229        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     230         
     231        $where  = 'del_flg = 0 AND kiyaku_title = ?'; 
     232        $arrVal = array($arrForm['kiyaku_title']); 
     233         
     234        if(!SC_Utils_Ex::isBlank($arrForm['kiyaku_id'])) { 
     235            $where   .= ' AND kiyaku_id <> ?'; 
     236            $arrVal[] = $arrForm['kiyaku_id']; 
     237        } 
     238         
     239        $arrRet = $objQuery->select('kiyaku_id, kiyaku_title', 'dtb_kiyaku', $where, $arrVal); 
     240 
     241        // 編集中のレコード以外に同じ名称が存在する場合 
     242        if (!SC_Utils_Ex::isBlank($arrRet)) { 
     243            $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br />'; 
    245244        } 
    246245        return $arrErr; 
Note: See TracChangeset for help on using the changeset viewer.