Ignore:
Timestamp:
2013/05/02 18:11:36 (11 years ago)
Author:
h_yoshimoto
Message:

#2236 2.12.3リリース以降の2.12-devへのコミット差し戻し

File:
1 edited

Legend:

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

    r22578 r22796  
    3232 * @version $Id$ 
    3333 */ 
    34 class LC_Page_Admin_Products_Maker extends LC_Page_Admin_Ex  
    35 { 
     34class LC_Page_Admin_Products_Maker extends LC_Page_Admin_Ex { 
    3635 
    3736    // }}} 
     
    4342     * @return void 
    4443     */ 
    45     function init() 
    46     { 
     44    function init() { 
    4745        parent::init(); 
    4846        $this->tpl_mainpage = 'products/maker.tpl'; 
     
    5856     * @return void 
    5957     */ 
    60     function process() 
    61     { 
     58    function process() { 
    6259        $this->action(); 
    6360        $this->sendResponse(); 
     
    6966     * @return void 
    7067     */ 
    71     function action() 
    72     { 
    73  
    74         $objMaker = new SC_Helper_Maker_Ex(); 
     68    function action() { 
     69 
    7570        $objFormParam = new SC_FormParam_Ex(); 
    7671 
     
    8782        $maker_id = $objFormParam->getValue('maker_id'); 
    8883 
     84        // 変換後のPOST値を取得 
     85        $this->arrForm  = $objFormParam->getHashArray(); 
     86 
    8987        // モードによる処理切り替え 
    9088        switch ($this->getMode()) { 
     
    9290            // 編集処理 
    9391            case 'edit': 
     92            // 入力文字の変換 
     93 
    9494                // エラーチェック 
    95                 $this->arrErr = $this->lfCheckError($objFormParam, $objMaker); 
    96                 if (!SC_Utils_Ex::isBlank($this->arrErr['maker_id'])) { 
    97                     trigger_error('', E_USER_ERROR); 
    98                     return; 
     95                $this->arrErr = $this->lfCheckError($this->arrForm, $objFormParam); 
     96                if (count($this->arrErr) <= 0) { 
     97                    if ($this->arrForm['maker_id'] == '') { 
     98                        // メーカー情報新規登録 
     99                        $this->lfInsert($this->arrForm); 
     100                    } else { 
     101                        // メーカー情報編集 
     102                        $this->lfUpdate($this->arrForm); 
     103                    } 
     104 
     105                    // 再表示 
     106                    $this->objDisplay->reload(); 
     107                } else { 
     108                    // POSTデータを引き継ぐ 
     109                    $this->tpl_maker_id = $this->arrForm['maker_id']; 
    99110                } 
    100  
    101                 if (count($this->arrErr) <= 0) { 
    102                     // POST値の引き継ぎ 
    103                     $arrParam = $objFormParam->getHashArray(); 
    104                     // 登録実行 
    105                     $res_maker_id = $this->doRegist($maker_id, $arrParam, $objMaker); 
    106                     if ($res_maker_id !== FALSE) { 
    107                         // 完了メッセージ 
    108                         $maker_id = $res_maker_id; 
    109                         $this->tpl_onload = "alert('登録が完了しました。');"; 
    110                     } 
    111                 } 
    112                 // POSTデータを引き継ぐ 
    113                 $this->tpl_maker_id = $maker_id; 
    114111                break; 
    115112 
    116113            // 編集前処理 
    117114            case 'pre_edit': 
    118                 $maker = $objMaker->get($maker_id); 
    119                 $objFormParam->setParam($maker); 
    120  
    121                 // POSTデータを引き継ぐ 
    122                 $this->tpl_maker_id = $maker_id; 
     115                $this->arrForm = $this->lfPreEdit($this->arrForm, $this->arrForm['maker_id']); 
     116                $this->tpl_maker_id = $this->arrForm['maker_id']; 
    123117                break; 
    124118 
    125119            // メーカー順変更 
    126120            case 'up': 
    127                 $objMaker->rankUp($maker_id); 
     121            case 'down': 
     122                $this->lfRankChange($this->arrForm['maker_id'], $this->getMode()); 
    128123 
    129124                // リロード 
     
    131126                break; 
    132127 
    133             case 'down': 
    134                 $objMaker->rankDown($maker_id); 
     128            // 削除 
     129            case 'delete': 
     130                $this->lfDelete($this->arrForm['maker_id']); 
    135131 
    136132                // リロード 
     
    138134                break; 
    139135 
    140             // 削除 
    141             case 'delete': 
    142                 $objMaker->delete($maker_id); 
    143  
    144                 // リロード 
    145                 SC_Response_Ex::reload(); 
    146                 break; 
    147  
    148136            default: 
    149137                break; 
    150138        } 
    151139 
    152         $this->arrForm = $objFormParam->getFormParamList(); 
    153  
    154140        // メーカー情報読み込み 
    155         $this->arrMaker = $objMaker->getList(); 
     141        $this->arrMaker = $this->lfDisp(); 
     142        // POSTデータを引き継ぐ 
     143        $this->tpl_maker_id = $maker_id; 
     144 
    156145    } 
    157146 
     
    161150     * @return void 
    162151     */ 
    163     function destroy() 
    164     { 
     152    function destroy() { 
    165153        parent::destroy(); 
    166154    } 
     
    172160     * @return void 
    173161     */ 
    174     function lfInitParam(&$objFormParam) 
    175     { 
     162    function lfInitParam(&$objFormParam) { 
    176163        $objFormParam->addParam('メーカーID', 'maker_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    177164        $objFormParam->addParam('メーカー名', 'name', SMTEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); 
     
    179166 
    180167    /** 
    181      * 登録処理を実行. 
    182      *  
    183      * @param integer $maker_id 
    184      * @param array $sqlval 
    185      * @param object $objMaker 
    186      * @return multiple 
    187      */ 
    188     function doRegist($maker_id, $sqlval, SC_Helper_Maker_Ex $objMaker) 
    189     { 
    190         $sqlval['maker_id'] = $maker_id; 
     168     * メーカー情報表示. 
     169     * 
     170     * @return array $arrMaker メーカー情報 
     171     */ 
     172    function lfDisp() { 
     173        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     174 
     175        // 削除されていないメーカー情報を表示する 
     176        $where = 'del_flg = 0'; 
     177        $objQuery->setOrder('rank DESC'); 
     178        $arrMaker = array(); 
     179        $arrMaker = $objQuery->select('maker_id, name', 'dtb_maker', $where); 
     180        return $arrMaker; 
     181    } 
     182 
     183    /** 
     184     * メーカー情報新規登録. 
     185     * 
     186     * @param array $arrForm メーカー情報 
     187     * @return void 
     188     */ 
     189    function lfInsert(&$arrForm) { 
     190        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     191 
     192        // INSERTする値を作成する 
     193        $sqlval['name'] = $arrForm['name']; 
     194        $sqlval['rank'] = $objQuery->max('rank', 'dtb_maker') + 1; 
    191195        $sqlval['creator_id'] = $_SESSION['member_id']; 
    192         return $objMaker->save($sqlval); 
     196        $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
     197        $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; 
     198        $sqlval['maker_id'] = $objQuery->nextVal('dtb_maker_maker_id'); 
     199 
     200        // INSERTの実行 
     201        $objQuery->insert('dtb_maker', $sqlval); 
     202    } 
     203 
     204    /** 
     205     * メーカー情報更新. 
     206     * 
     207     * @param array $arrForm メーカー情報 
     208     * @return void 
     209     */ 
     210    function lfUpdate(&$arrForm) { 
     211        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     212 
     213        // UPDATEする値を作成する 
     214        $sqlval['name'] = $arrForm['name']; 
     215        $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
     216        $where = 'maker_id = ?'; 
     217 
     218        // UPDATEの実行 
     219        $objQuery->update('dtb_maker', $sqlval, $where, array($arrForm['maker_id'])); 
     220    } 
     221 
     222    /** 
     223     * メーカー情報削除. 
     224     * 
     225     * @param integer $maker_id メーカーID 
     226     * @return void 
     227     */ 
     228    function lfDelete($maker_id) { 
     229        $objDb = new SC_Helper_DB_Ex(); 
     230        $objDb->sfDeleteRankRecord('dtb_maker', 'maker_id', $maker_id, '', true); 
     231    } 
     232 
     233    /** 
     234     * メーカー情報順番変更. 
     235     * 
     236     * @param  integer $maker_id メーカーID 
     237     * @param  string  $mode up か down のモードを示す文字列 
     238     * @return void 
     239     */ 
     240    function lfRankChange($maker_id, $mode) { 
     241        $objDb = new SC_Helper_DB_Ex(); 
     242 
     243        switch ($mode) { 
     244            case 'up': 
     245                $objDb->sfRankUp('dtb_maker', 'maker_id', $maker_id); 
     246                break; 
     247 
     248            case 'down': 
     249                $objDb->sfRankDown('dtb_maker', 'maker_id', $maker_id); 
     250                break; 
     251 
     252            default: 
     253                break; 
     254        } 
     255    } 
     256 
     257    /** 
     258     * メーカー情報編集前処理. 
     259     * 
     260     * @param array   $arrForm メーカー情報 
     261     * @param integer $maker_id メーカーID 
     262     * @return array  $arrForm メーカー名を追加 
     263     */ 
     264    function lfPreEdit(&$arrForm, $maker_id) { 
     265        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     266 
     267        // 編集項目を取得する 
     268        $where = 'maker_id = ?'; 
     269        $arrMaker = array(); 
     270        $arrMaker = $objQuery->select('name', 'dtb_maker', $where, array($maker_id)); 
     271        $arrForm['name'] = $arrMaker[0]['name']; 
     272 
     273        return $arrForm; 
    193274    } 
    194275 
     
    196277     * 入力エラーチェック. 
    197278     * 
     279     * @param  array $arrForm メーカー情報 
    198280     * @return array $objErr->arrErr エラー内容 
    199281     */ 
    200     function lfCheckError(&$objFormParam, SC_Helper_Maker_Ex &$objMaker) 
    201     { 
     282    function lfCheckError(&$arrForm, &$objFormParam) { 
    202283 
    203284        $arrErr = $objFormParam->checkError(); 
    204         $arrForm = $objFormParam->getHashArray(); 
     285        if (!empty($arrErr)) { 
     286            return $arrErr; 
     287        } 
    205288 
    206289        // maker_id の正当性チェック 
    207290        if (!empty($arrForm['maker_id'])) { 
     291            $objDb = new SC_Helper_DB_Ex(); 
    208292            if (!SC_Utils_Ex::sfIsInt($arrForm['maker_id']) 
    209293                || SC_Utils_Ex::sfIsZeroFilling($arrForm['maker_id']) 
    210                 || !$objMaker->get($arrForm['maker_id']) 
     294                || !$objDb->sfIsRecord('dtb_maker', 'maker_id', array($arrForm['maker_id'])) 
    211295            ) { 
    212296                // maker_idが指定されていて、且つその値が不正と思われる場合はエラー 
     
    215299        } 
    216300        if (!isset($arrErr['name'])) { 
    217             $arrMaker = $objMaker->getByName($arrForm['name']); 
     301            $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     302            $arrMaker = array(); 
     303            $arrMaker = $objQuery->select('maker_id, name', 'dtb_maker', 'del_flg = 0 AND name = ?', array($arrForm['name'])); 
    218304 
    219305            // 編集中のレコード以外に同じ名称が存在する場合 
    220             if ( 
    221                     !SC_Utils_Ex::isBlank($arrMaker) 
    222                     && $arrMaker['maker_id'] != $arrForm['maker_id'] 
    223                     && $arrMaker['name'] == $arrForm['name'] 
    224                 ) { 
     306            if ($arrMaker[0]['maker_id'] != $arrForm['maker_id'] && $arrMaker[0]['name'] == $arrForm['name']) { 
    225307                $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br />'; 
    226308            } 
Note: See TracChangeset for help on using the changeset viewer.