Changeset 21357


Ignore:
Timestamp:
2011/11/26 12:34:55 (9 years ago)
Author:
Seasoft
Message:

#1324 (LC_Page_Admin_Products_Category をカスタマイズしやすくする)

File:
1 edited

Legend:

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

    r21356 r21357  
    8383        case 'edit': 
    8484            $this->doEdit($objFormParam); 
    85             // エラーがあるときは入力値の再表示 
    86             if (!empty($this->arrErr)) { 
    87                 $this->arrForm = $objFormParam->getHashArray(); 
    88             } 
    8985            break; 
    9086        // 入力ボックスへ編集対象のカテゴリ名をセット 
     
    260256     */ 
    261257    function doEdit(&$objFormParam) { 
     258        $category_id = $objFormParam->getValue('category_id'); 
     259 
     260        // 追加か 
     261        $add = strlen($category_id) === 0; 
     262 
     263        // エラーチェック 
     264        $this->arrErr = $this->checkError($objFormParam, $add); 
     265 
     266        // エラーがない場合、追加・更新処理 
     267        if (empty($this->arrErr)) { 
     268            $arrCategory = $objFormParam->getDbArray(); 
     269 
     270            // 追加 
     271            if ($add) { 
     272                $this->registerCategory($arrCategory); 
     273            } 
     274            // 更新 
     275            else { 
     276                unset($arrCategory['category_id']); 
     277                $this->updateCategory($category_id, $arrCategory); 
     278            } 
     279        } 
     280        // エラーがある場合、入力値の再表示 
     281        else { 
     282            $this->arrForm = $objFormParam->getHashArray(); 
     283        } 
     284    } 
     285 
     286    /** 
     287     * エラーチェック 
     288     * 
     289     * @param SC_FormParam $objFormParam 
     290     * @param boolean $add 追加か 
     291     * @return void 
     292     */ 
     293    function checkError(&$objFormParam, $add) { 
    262294        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    263295 
    264296        // 入力項目チェック 
    265297        $arrErr = $objFormParam->checkError(); 
    266         if (count($arrErr) > 0) { 
    267             $this->arrErr = $arrErr; 
    268             return; 
     298        if (!empty($arrErr)) { 
     299            return $arrErr; 
    269300        } 
    270301 
     
    272303        $parent_category_id = $objFormParam->getValue('parent_category_id'); 
    273304        $category_name = $objFormParam->getValue('category_name'); 
    274  
    275         // 追加か 
    276         $add = strlen($category_id) === 0; 
    277305 
    278306        // 追加の場合に固有のチェック 
     
    282310            $count = $objQuery->count("dtb_category", $where); 
    283311            if ($count >= CATEGORY_MAX) { 
    284                 $this->arrErr['category_name'] = "※ カテゴリの登録最大数を超えました。<br/>"; 
    285                 return; 
     312                $arrErr['category_name'] = "※ カテゴリの登録最大数を超えました。<br/>"; 
     313                return $arrErr; 
    286314            } 
    287315 
    288316            // 階層上限チェック 
    289317            if ($this->isOverLevel($parent_category_id)) { 
    290                 $this->arrErr['category_name'] = "※ " . LEVEL_MAX . "階層以上の登録はできません。<br/>"; 
    291                 return; 
     318                $arrErr['category_name'] = "※ " . LEVEL_MAX . "階層以上の登録はできません。<br/>"; 
     319                return $arrErr; 
    292320            } 
    293321        } 
     
    305333        $count = $objQuery->count('dtb_category', $where, $arrWhereVal); 
    306334        if ($count > 0) { 
    307             $this->arrErr['category_name']  = "※ 既に同じ内容の登録が存在します。<br/>"; 
    308             return; 
    309         } 
    310  
    311         $arrCategory = $objFormParam->getDbArray(); 
    312  
    313         // 追加 
    314         if ($add) { 
    315             $this->registerCategory($arrCategory); 
    316         } 
    317         // 更新 
    318         else { 
    319             unset($arrCategory['category_id']); 
    320             $this->updateCategory($category_id, $arrCategory); 
    321         } 
     335            $arrErr['category_name'] = "※ 既に同じ内容の登録が存在します。<br/>"; 
     336            return $arrErr; 
     337        } 
     338 
     339        return $arrErr; 
    322340    } 
    323341 
Note: See TracChangeset for help on using the changeset viewer.