Ignore:
Timestamp:
2013/02/20 19:57:25 (11 years ago)
Author:
pineray
Message:

#2155 pageクラスからdtb_holidayテーブルを直接指定している箇所をなくす

Location:
branches/version-2_12-dev/data
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/Smarty/templates/admin/basis/holiday.tpl

    r22571 r22575  
    3434            <td> 
    3535                <!--{if $arrErr.title}--><span class="attention"><!--{$arrErr.title}--></span><!--{/if}--> 
    36                 <input type="text" name="title" value="<!--{$arrForm.title|h}-->" maxlength="<!--{$smarty.const.SMTEXT_LEN}-->" style="" size="60" class="box60"/> 
     36                <input type="text" name="title" value="<!--{$arrForm.title.value|h}-->" maxlength="<!--{$smarty.const.SMTEXT_LEN}-->" style="" size="60" class="box60"/> 
    3737                <span class="attention"> (上限<!--{$smarty.const.SMTEXT_LEN}-->文字)</span> 
    3838            </td> 
     
    4848                <select name="month" style="<!--{$arrErr.month|sfGetErrorColor}-->"> 
    4949                    <option value="">--</option> 
    50                     <!--{html_options options=$arrMonth selected=$arrForm.month}--> 
     50                    <!--{html_options options=$arrMonth selected=$arrForm.month.value}--> 
    5151                </select>月 
    5252                <select name="day" style="<!--{$arrErr.day|sfGetErrorColor}-->"> 
    5353                    <option value="">--</option> 
    54                     <!--{html_options options=$arrDay selected=$arrForm.day}--> 
     54                    <!--{html_options options=$arrDay selected=$arrForm.day.value}--> 
    5555                </select>日 
    5656                <br /> 
  • branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Holiday.php

    r22567 r22575  
    7272    { 
    7373 
    74         $objDb = new SC_Helper_DB_Ex(); 
     74        $objHoliday = new SC_Helper_Holiday_Ex(); 
    7575 
    7676        $objDate = new SC_Date_Ex(); 
     
    8080        $mode = $this->getMode(); 
    8181 
    82         if (!empty($_POST)) { 
    83  
    84             $objFormParam = new SC_FormParam_Ex(); 
    85             $this->lfInitParam($mode, $objFormParam); 
    86             $objFormParam->setParam($_POST); 
    87             $objFormParam->convParam(); 
    88             $holiday_id = $objFormParam->getValue('holiday_id'); 
    89  
    90             $this->arrErr = $this->lfCheckError($mode, $objFormParam); 
    91             if (!empty($this->arrErr['holiday_id'])) { 
    92                 trigger_error('', E_USER_ERROR); 
    93                 return; 
    94             } 
    95  
    96             $post = $objFormParam->getHashArray(); 
    97         } 
     82        $objFormParam = new SC_FormParam_Ex(); 
     83        $this->lfInitParam($mode, $objFormParam); 
     84        $objFormParam->setParam($_POST); 
     85        $objFormParam->convParam(); 
     86 
     87        $holiday_id = $objFormParam->getValue('holiday_id'); 
    9888 
    9989        // 要求判定 
     
    10191            // 編集処理 
    10292            case 'edit': 
    103                 // POST値の引き継ぎ 
    104                 $this->arrForm = $this->arrForm = $_POST; 
     93                $this->arrErr = $this->lfCheckError($objFormParam, $objHoliday); 
     94                if (!SC_Utils_Ex::isBlank($this->arrErr['holiday_id'])) { 
     95                    trigger_error('', E_USER_ERROR); 
     96                    return; 
     97                } 
    10598 
    10699                if (count($this->arrErr) <= 0) { 
    107                     // 新規作成 
    108                     if ($post['holiday_id'] == '') { 
    109                         $this->lfInsertClass($this->arrForm, $_SESSION['member_id']); 
     100                    // POST値の引き継ぎ 
     101                    $arrParam = $objFormParam->getHashArray(); 
     102                    // 登録実行 
     103                    $res_holiday_id = $this->doRegist($holiday_id, $arrParam, $objHoliday); 
     104                    if ($res_holiday_id !== FALSE) { 
     105                        // 完了メッセージ 
     106                        $holiday_id = $res_holiday_id; 
     107                        $this->tpl_onload = "alert('登録が完了しました。');"; 
    110108                    } 
    111                     // 既存編集 
    112                     else { 
    113                         $this->lfUpdateClass($this->arrForm, $post['holiday_id']); 
    114                     } 
    115  
    116                     // 再表示 
    117                     $this->objDisplay->reload(); 
    118                 } else { 
    119                     // POSTデータを引き継ぐ 
    120                     $this->tpl_holiday_id = $post['holiday_id']; 
    121109                } 
     110                // POSTデータを引き継ぐ 
     111                $this->tpl_holiday_id = $holiday_id; 
     112 
    122113                break; 
    123114            // 削除 
    124115            case 'delete': 
    125                 $objDb->sfDeleteRankRecord('dtb_holiday', 'holiday_id', $post['holiday_id'], '', true); 
    126  
    127                 // 再表示 
    128                 $this->objDisplay->reload(); 
     116                $objHoliday->delete($holiday_id); 
    129117                break; 
    130118            // 編集前処理 
    131119            case 'pre_edit': 
    132120                // 編集項目を取得する。 
    133                 $arrHolidayData = $this->lfGetHolidayDataByHolidayID($post['holiday_id']); 
    134  
    135                 // 入力項目にカテゴリ名を入力する。 
    136                 $this->arrForm['title'] = $arrHolidayData[0]['title']; 
    137                 $this->arrForm['month'] = $arrHolidayData[0]['month']; 
    138                 $this->arrForm['day'] = $arrHolidayData[0]['day']; 
     121                $arrHolidayData = $objHoliday->get($holiday_id); 
     122                $objFormParam->setParam($arrHolidayData); 
     123 
    139124                // POSTデータを引き継ぐ 
    140                 $this->tpl_holiday_id = $post['holiday_id']; 
     125                $this->tpl_holiday_id = $holiday_id; 
    141126                break; 
    142127            case 'down': 
    143                 $objDb->sfRankDown('dtb_holiday', 'holiday_id', $post['holiday_id']); 
     128                $objHoliday->rankDown($holiday_id); 
    144129 
    145130                // 再表示 
     
    147132                break; 
    148133            case 'up': 
    149                 $objDb->sfRankUp('dtb_holiday', 'holiday_id', $post['holiday_id']); 
     134                $objHoliday->rankUp($holiday_id); 
    150135 
    151136                // 再表示 
     
    156141        } 
    157142 
    158         $this->arrHoliday = $this->lfGetHolidayList(); 
    159         // POSTデータを引き継ぐ 
    160         $this->tpl_holiday_id = $holiday_id; 
    161  
     143        $this->arrForm = $objFormParam->getFormParamList(); 
     144 
     145        $this->arrHoliday = $objHoliday->getList(); 
    162146    } 
    163147 
     
    172156    } 
    173157 
    174     function lfGetHolidayDataByHolidayID($holiday_id) 
    175     { 
    176         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    177  
    178         $where = 'holiday_id = ?'; 
    179         return $objQuery->select('title, month, day', 'dtb_holiday', $where, array($holiday_id)); 
    180     } 
    181  
    182     function lfGetHolidayList() 
    183     { 
    184         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    185  
    186         $where = 'del_flg <> 1'; 
    187         $objQuery->setOrder('rank DESC'); 
    188         return $objQuery->select('holiday_id, title, month, day', 'dtb_holiday', $where); 
    189     } 
    190  
    191     /* DBへの挿入 */ 
    192     function lfInsertClass($arrData, $member_id) 
    193     { 
    194         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    195         // INSERTする値を作成する。 
    196         $sqlval['title'] = $arrData['title']; 
    197         $sqlval['month'] = $arrData['month']; 
    198         $sqlval['day'] = $arrData['day']; 
    199         $sqlval['creator_id'] = $member_id; 
    200         $sqlval['rank'] = $objQuery->max('rank', 'dtb_holiday') + 1; 
    201         $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
    202         $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; 
    203         // INSERTの実行 
    204         $sqlval['holiday_id'] = $objQuery->nextVal('dtb_holiday_holiday_id'); 
    205         $ret = $objQuery->insert('dtb_holiday', $sqlval); 
    206         return $ret; 
    207     } 
    208  
    209     /* DBへの更新 */ 
    210     function lfUpdateClass($arrData) 
    211     { 
    212         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    213         // UPDATEする値を作成する。 
    214         $sqlval['title'] = $arrData['title']; 
    215         $sqlval['month'] = $arrData['month']; 
    216         $sqlval['day'] = $arrData['day']; 
    217         $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
    218         $where = 'holiday_id = ?'; 
    219         // UPDATEの実行 
    220         $ret = $objQuery->update('dtb_holiday', $sqlval, $where, array($arrData['holiday_id'])); 
    221         return $ret; 
     158    /** 
     159     * 登録処理を実行. 
     160     *  
     161     * @param integer $holiday_id 
     162     * @param array $sqlval 
     163     * @param object $objHoliday 
     164     * @return multiple 
     165     */ 
     166    function doRegist($holiday_id, $sqlval, SC_Helper_Holiday_Ex $objHoliday) 
     167    { 
     168        $sqlval['holiday_id'] = $holiday_id; 
     169        $sqlval['creator_id'] = $_SESSION['member_id']; 
     170        return $objHoliday->save($sqlval); 
    222171    } 
    223172 
     
    226175        switch ($mode) { 
    227176            case 'edit': 
     177            case 'pre_edit': 
    228178                $objFormParam->addParam('タイトル', 'title', STEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); 
    229179                $objFormParam->addParam('月', 'month', INT_LEN, 'n', array('SELECT_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); 
    230180                $objFormParam->addParam('日', 'day', INT_LEN, 'n', array('SELECT_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); 
    231                 // breakしない 
     181                $objFormParam->addParam('定休日ID', 'holiday_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     182                break; 
    232183            case 'delete': 
    233             case 'pre_edit': 
    234184            case 'down': 
    235185            case 'up': 
     186            default: 
    236187                $objFormParam->addParam('定休日ID', 'holiday_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    237188                break; 
    238             default: 
    239                 break; 
    240189        } 
    241190    } 
     
    244193     * 入力エラーチェック 
    245194     * 
    246      * @param string $mode 
     195     * @param object $objFormParam 
     196     * @param object $objHoliday 
    247197     * @return array 
    248198     */ 
    249     function lfCheckError($mode, &$objFormParam) 
    250     { 
    251         $objFormParam->convParam(); 
     199    function lfCheckError(&$objFormParam, SC_Helper_Holiday_Ex &$objHoliday) 
     200    { 
    252201        $arrErr = $objFormParam->checkError(); 
    253         $post = $objFormParam->getHashArray(); 
    254  
    255         if (!isset($arrErr['date'])) { 
    256             $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    257             $where = 'del_flg = 0 AND month = ? AND day = ?'; 
    258             $arrWhereVal = array($post['month'], $post['day']); 
    259             if (!empty($post['holiday_id'])) { 
    260                 $where .= ' AND holiday_id <> ?'; 
    261                 $arrWhereVal[] = $post['holiday_id']; 
    262             } 
    263             $arrRet = $objQuery->select('count(holiday_id) as count', 'dtb_holiday', $where, $arrWhereVal); 
    264  
    265             // 編集中のレコード以外に同じ日付が存在する場合 
    266             if ($arrRet[0]['count'] > 0) { 
    267                 $arrErr['date'] = '※ 既に同じ日付の登録が存在します。<br>'; 
    268             } 
     202        $arrForm = $objFormParam->getHashArray(); 
     203 
     204        // 編集中のレコード以外に同じ日付が存在する場合 
     205        if ($objHoliday->isDateExist($arrForm['month'], $arrForm['day'], $arrForm['holiday_id'])) { 
     206            $arrErr['date'] = '※ 既に同じ日付の登録が存在します。<br>'; 
    269207        } 
    270208        return $arrErr; 
Note: See TracChangeset for help on using the changeset viewer.