Changeset 20127


Ignore:
Timestamp:
2011/02/09 21:10:45 (11 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:20126
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/class/SC_FormParam.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_FormParam.php
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110209120452-qxfqsod0i0huzsp3
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110209121032-f87kx2nv801gwnto
bzr:revno:
2855
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-revisions:

data/class/SC_FormParam.php ohkouchi@loop-az.jp-20110209120452-qxfqsod0i0huzsp3
bzr:timestamp:
2011-02-09 21:10:32.371000051 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-02-09T12:10:32.371000Z
Message:

#975([管理画面]受注管理(受注一覧、登録編集))

  • 配送商品のチェックを多次元配列で行うため, SC_FormParam::checkError() を多次元配列に対応
File:
1 edited

Legend:

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

    r20091 r20127  
    176176        // 連想配列の取得 
    177177        $arrRet = $this->getHashArray($keyname); 
    178         $objErr = new SC_CheckError($arrRet); 
     178        $objErr->arrErr = array(); 
    179179 
    180180        $cnt = 0; 
     
    202202                case 'FILE_NAME_CHECK': 
    203203                case 'MOBILE_EMAIL_CHECK': 
    204  
    205                     if(!is_array($this->param[$cnt])) { 
    206                         $objErr->doFunc(array($this->disp_name[$cnt], $val), array($func)); 
    207                     } else { 
    208                         $max = count($this->param[$cnt]); 
    209                         for($i = 0; $i < $max; $i++) { 
    210                             $objSubErr = new SC_CheckError($this->param[$cnt]); 
    211                             $objSubErr->doFunc(array($this->disp_name[$cnt], $i), array($func)); 
    212                             if(count($objSubErr->arrErr) > 0) { 
    213                                 foreach($objSubErr->arrErr as $mess) { 
    214                                     if($mess != "") { 
    215                                         $objErr->arrErr[$val] = $mess; 
    216                                     } 
    217                                 } 
    218                             } 
    219                         } 
    220                     } 
     204                    $this->recursionCheck($this->disp_name[$cnt], $func, 
     205                                          $this->param[$cnt], $objErr->arrErr, 
     206                                          $val, $this->length[$cnt]); 
    221207                    break; 
    222208                case 'MAX_LENGTH_CHECK': 
    223209                case 'MIN_LENGTH_CHECK': 
    224210                case 'NUM_COUNT_CHECK': 
    225                     if(!is_array($this->param[$cnt])) { 
    226                         $objErr->doFunc(array($this->disp_name[$cnt], $val, $this->length[$cnt]), array($func)); 
    227                     } else { 
    228                         $max = count($this->param[$cnt]); 
    229                         for($i = 0; $i < $max; $i++) { 
    230                             $objSubErr = new SC_CheckError($this->param[$cnt]); 
    231                             $objSubErr->doFunc(array($this->disp_name[$cnt], $i, $this->length[$cnt]), array($func)); 
    232                             if(count($objSubErr->arrErr) > 0) { 
    233                                 foreach($objSubErr->arrErr as $mess) { 
    234                                     if($mess != "") { 
    235                                         $objErr->arrErr[$val] = $mess; 
    236                                     } 
    237                                 } 
    238                             } 
    239                         } 
    240                     } 
     211                    $this->recursionCheck($this->disp_name[$cnt], $func, 
     212                                          $this->param[$cnt], $objErr->arrErr, 
     213                                          $val, $this->length[$cnt]); 
    241214                    break; 
    242215                // 小文字に変換 
     
    268241        } 
    269242        return $objErr->arrErr; 
     243    } 
     244 
     245    /** 
     246     * SC_CheckError::doFunc() を再帰的に実行する. 
     247     * 
     248     * @param string $disp_name 表示名 
     249     * @param string $func チェック種別 
     250     * @param mixed $value チェック対象の値. 配列の場合は再帰的にチェックする. 
     251     * @param array $arrErr エラーメッセージを格納する配列 
     252     * @param string $error_key エラーメッセージを格納する配列のキー 
     253     * @param integer $length チェック対象の値の長さ 
     254     * @return void 
     255     */ 
     256    function recursionCheck($disp_name, $func, $value, &$arrErr, $error_key, 
     257                            $length = 0) { 
     258        if (is_array($value)) { 
     259            foreach ($value as $in) { 
     260                $this->recursionCheck($disp_name, $func, $in, $arrErr, $error_key, 
     261                                      $length); 
     262            } 
     263        } else { 
     264            $objSubErr = new SC_CheckError(array(0 => $value)); 
     265            $objSubErr->doFunc(array($disp_name, 0, $length), array($func)); 
     266            if(count($objSubErr->arrErr) > 0) { 
     267                foreach($objSubErr->arrErr as $mess) { 
     268                    if($mess != "") { 
     269                        $arrErr[$error_key] .= $mess; 
     270                    } 
     271                } 
     272            } 
     273        } 
    270274    } 
    271275 
Note: See TracChangeset for help on using the changeset viewer.