source: temp/trunk/data/class/SC_FormParam.php @ 5089

Revision 5089, 8.1 KB checked in by kakinaka, 20 years ago (diff)

blank

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2
3/* ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹ */
4class SC_FormParam {
5
6    var $param;
7    var $disp_name;
8    var $keyname;
9    var $length;
10    var $convert;
11    var $arrCheck;
12    var $default;   // ²¿¤âÆþÎϤµ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ëɽ¼¨¤¹¤ëÃÍ
13    var $input_db;  // DB¤Ë¤½¤Î¤Þ¤ÞÁÞÆþ²Äǽ¤«Èݤ«
14    var $html_disp_name;
15   
16    // ¥³¥ó¥¹¥È¥é¥¯¥¿
17    function SC_FormParam() {
18        $this->check_dir = IMAGE_SAVE_DIR;
19    }
20   
21    // ¥Ñ¥é¥á¡¼¥¿¤ÎÄɲÃ
22    function addParam($disp_name, $keyname, $length="", $convert="", $arrCheck=array(), $default="", $input_db="true") {
23        $this->disp_name[] = $disp_name;
24        $this->keyname[] = $keyname;
25        $this->length[] = $length;
26        $this->convert[] = $convert;
27        $this->arrCheck[] = $arrCheck;
28        $this->default[] = $default;
29        $this->input_db[] = $input_db;
30    }
31   
32    // ¥Ñ¥é¥á¡¼¥¿¤ÎÆþÎÏ
33    // $arrVal  :$arrVal['keyname']¡¦¡¦¤ÎÇÛÎó¤ò°ìÃפ·¤¿¥­¡¼¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ë³ÊǼ¤¹¤ë
34    // $seq     :true¤Î¾ì¹ç¡¢$arrVal[0]¢·¤ÎÇÛÎó¤òÅÐÏ¿½ç¤Ë¥¤¥ó¥¹¥¿¥ó¥¹¤Ë³ÊǼ¤¹¤ë
35    function setParam($arrVal, $seq = false) {
36        $cnt = 0;
37        if(!$seq){
38            foreach($this->keyname as $val) {
39                if(isset($arrVal[$val])) {
40                    $this->setValue($val, $arrVal[$val]);
41                }
42            }       
43        } else {
44            foreach($this->keyname as $val) {
45                $this->param[$cnt] = $arrVal[$cnt];
46                $cnt++;
47            }
48        }
49    }
50   
51    // ²èÌÌɽ¼¨ÍÑ¥¿¥¤¥È¥ëÀ¸À®
52    function setHtmlDispNameArray() {
53        $cnt = 0;
54        foreach($this->keyname as $val) {
55            $find = false;
56            foreach($this->arrCheck[$cnt] as $val) {
57                if($val == "EXIST_CHECK") {
58                    $find = true;
59                }
60            }
61           
62            if($find) {
63                $this->html_disp_name[$cnt] = $this->disp_name[$cnt] . "<span class='red'>(¢¨ ɬ¿Ü)</span>";                   
64            } else {
65                $this->html_disp_name[$cnt] = $this->disp_name[$cnt];
66            }                               
67            $cnt++;
68        }
69    }
70   
71    // ²èÌÌɽ¼¨ÍÑ¥¿¥¤¥È¥ë¼èÆÀ
72    function getHtmlDispNameArray() {
73        return $this->html_disp_name;
74    }
75       
76    // Ê£¿ôÎó¥Ñ¥é¥á¡¼¥¿¤Î¼èÆÀ
77    function setParamList($arrVal, $keyname) {
78        // DB¤Î·ï¿ô¤ò¼èÆÀ¤¹¤ë¡£
79        $count = count($arrVal);
80        $no = 1;
81        for($cnt = 0; $cnt < $count; $cnt++) {
82            $key = $keyname.$no;
83            if($arrVal[$cnt][$keyname] != "") {
84                $this->setValue($key, $arrVal[$cnt][$keyname]);
85            }
86            $no++;
87        }
88    }
89   
90    function setDBDate($db_date, $year_key = 'year', $month_key = 'month', $day_key = 'day') {
91        list($y, $m, $d) = split("[- ]", $db_date);
92        $this->setValue($year_key, $y);
93        $this->setValue($month_key, $m);
94        $this->setValue($day_key, $d);
95    }
96   
97    // ¥­¡¼¤ËÂбþ¤·¤¿Ãͤò¥»¥Ã¥È¤¹¤ë¡£
98    function setValue($key, $param) {
99        $cnt = 0;
100        foreach($this->keyname as $val) {
101            if($val == $key) {
102                $this->param[$cnt] = $param;
103                break;
104            }
105            $cnt++;
106        }
107    }
108
109    function toLower($key) {
110        $cnt = 0;
111        foreach($this->keyname as $val) {
112            if($val == $key) {
113                $this->param[$cnt] = strtolower($this->param[$cnt]);
114                break;
115            }
116            $cnt++;
117        }
118    }
119   
120    // ¥¨¥é¡¼¥Á¥§¥Ã¥¯
121    function checkError($br = true, $keyname = "") {
122        // Ï¢ÁÛÇÛÎó¤Î¼èÆÀ
123        $arrRet = $this->getHashArray($keyname);
124        $objErr = new SC_CheckError($arrRet);
125        $cnt = 0;
126        foreach($this->keyname as $val) {
127            foreach($this->arrCheck[$cnt] as $func) {
128                switch($func) {
129                case 'EXIST_CHECK':
130                case 'NUM_CHECK':
131                case 'EMAIL_CHECK':
132                case 'EMAIL_CHAR_CHECK':
133                case 'ALNUM_CHECK':
134                case 'KANA_CHECK':
135                case 'URL_CHECK':
136                case 'SPTAB_CHECK':
137                case 'ZERO_CHECK':
138                case 'ALPHA_CHECK':
139                case 'ZERO_START':
140                case 'FIND_FILE':
141                case 'NO_SPTAB':
142                case 'DIR_CHECK':
143                case 'DOMAIN_CHECK':
144               
145                    if(!is_array($this->param[$cnt])) {
146                        $objErr->doFunc(array($this->disp_name[$cnt], $val), array($func));
147                    } else {
148                        $max = count($this->param[$cnt]);
149                        for($i = 0; $i < $max; $i++) {
150                            $objSubErr = new SC_CheckError($this->param[$cnt]);
151                            $objSubErr->doFunc(array($this->disp_name[$cnt], $i), array($func));
152                            if(count($objSubErr->arrErr) > 0) {
153                                foreach($objSubErr->arrErr as $mess) {
154                                    if($mess != "") {
155                                        $objErr->arrErr[$val] = $mess;
156                                    }
157                                }
158                            }
159                        }
160                    }
161                    break;
162                case 'MAX_LENGTH_CHECK':
163                case 'NUM_COUNT_CHECK':
164                    if(!is_array($this->param[$cnt])) {
165                        $objErr->doFunc(array($this->disp_name[$cnt], $val, $this->length[$cnt]), array($func));
166                    } else {
167                        $max = count($this->param[$cnt]);
168                        for($i = 0; $i < $max; $i++) {
169                            $objSubErr = new SC_CheckError($this->param[$cnt]);
170                            $objSubErr->doFunc(array($this->disp_name[$cnt], $i, $this->length[$cnt]), array($func));
171                            if(count($objSubErr->arrErr) > 0) {
172                                foreach($objSubErr->arrErr as $mess) {
173                                    if($mess != "") {
174                                        $objErr->arrErr[$val] = $mess;
175                                    }
176                                }
177                            }
178                        }
179                    }
180                    break;
181                // ¾®Ê¸»ú¤ËÊÑ´¹
182                case 'CHANGE_LOWER':
183                    $this->param[$cnt] = strtolower($this->param[$cnt]);
184                    break;
185                // ¥Õ¥¡¥¤¥ë¤Î¸ºß¥Á¥§¥Ã¥¯
186                case 'FILE_EXISTS':
187                    if($this->param[$cnt] != "" && !file_exists($this->check_dir . $this->param[$cnt])) {
188                        $objErr->arrErr[$val] = "¢¨ " . $this->disp_name[$cnt] . "¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£<br>";                 
189                    }
190                    break;
191                default:
192                    $objErr->arrErr[$val] = "¢¨¢¨¡¡¥¨¥é¡¼¥Á¥§¥Ã¥¯·Á¼°($func)¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡¡¢¨¢¨ <br>";
193                    break;
194                }
195            }
196           
197            if (isset($objErr->arrErr[$val]) && !$br) {
198                $objErr->arrErr[$val] = ereg_replace("<br>$", "", $objErr->arrErr[$val]);
199            }
200            $cnt++;
201        }
202        return $objErr->arrErr;
203    }
204   
205    // ÆþÎÏʸ»ú¤ÎÊÑ´¹
206    function convParam() {
207        /*
208         *  ʸ»úÎó¤ÎÊÑ´¹
209         *  K :  ¡ÖȾ³Ñ(ŽÊŽÝ޶ޏ)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹
210         *  C :  ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹
211         *  V :  ÂùÅÀÉÕ¤­¤Îʸ»ú¤ò°ìʸ»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹ 
212         *  n :  ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖȾ³Ñ(ŽÊŽÝ޶ޏ)¡×¤ËÊÑ´¹
213         *  a :  ¡ÖÁ´³Ñ¡×±Ñ»ú¤ò¡ÖȾ³Ñ¡×±Ñ»ú¤ËÊÑ´¹
214         */
215        $cnt = 0;
216        foreach ($this->keyname as $val) {
217            if(!is_array($this->param[$cnt])) {
218                if($this->convert[$cnt] != "") {
219                    $this->param[$cnt] = mb_convert_kana($this->param[$cnt] ,$this->convert[$cnt]);
220                }
221            } else {
222                $max = count($this->param[$cnt]);
223                for($i = 0; $i < $max; $i++) {
224                    if($this->convert[$cnt] != "") {
225                        $this->param[$cnt][$i] = mb_convert_kana($this->param[$cnt][$i] ,$this->convert[$cnt]);
226                    }
227                }
228            }
229            $cnt++;
230        }
231    }
232   
233    // Ï¢ÁÛÇÛÎó¤ÎºîÀ®
234    function getHashArray($keyname = "") {
235        $cnt = 0;
236        foreach($this->keyname as $val) {
237            if($keyname == "" || $keyname == $val) {
238                $arrRet[$val] = $this->param[$cnt];
239                $cnt++;
240            }
241        }
242        return $arrRet;
243    }
244   
245    // DB³ÊǼÍÑÇÛÎó¤ÎºîÀ®
246    function getDbArray() {
247        $cnt = 0;
248        foreach ($this->keyname as $val) {
249            if ($this->input_db[$cnt]) {
250                $arrRet[$val] = $this->param[$cnt];
251            }
252            $cnt++;
253        }
254        return $arrRet;
255    }
256   
257    // ÇÛÎó¤Î½Ä²£¤òÆþ¤ìÂØ¤¨¤ÆÊÖ¤¹
258    function getSwapArray($arrKey) {
259        foreach($arrKey as $keyname) {
260            $arrVal = $this->getValue($keyname);
261            $max = count($arrVal);
262            for($i = 0; $i < $max; $i++) {
263                $arrRet[$i][$keyname] = $arrVal[$i];
264            }
265        }
266        return $arrRet;
267    }
268   
269    // ¹àÌÜ̾°ìÍ÷¤Î¼èÆÀ
270    function getTitleArray() {
271        return $this->disp_name;
272    }
273   
274    // ¹àÌÜ¿ô¤òÊÖ¤¹
275    function getCount() {
276        $count = count($this->keyname);
277        return $count;
278    }
279   
280    // ¥Õ¥©¡¼¥à¤ËÅϤ¹ÍѤΥѥé¥á¡¼¥¿¤òÊÖ¤¹
281    function getFormParamList() {
282        $cnt = 0;
283        foreach($this->keyname as $val) {
284            // ¥­¡¼Ì¾
285            $arrRet[$val]['keyname'] = $this->keyname[$cnt];
286            // ʸ»ú¿ôÀ©¸Â
287            $arrRet[$val]['length'] = $this->length[$cnt];
288            // ÆþÎÏÃÍ
289            $arrRet[$val]['value'] = $this->param[$cnt];
290           
291            if($this->default[$cnt] != "" && $this->param[$cnt] == "") {
292                $arrRet[$val]['value'] = $this->default[$cnt];
293            }
294                   
295            $cnt++;
296        }
297        return $arrRet;
298    }
299   
300    // ¥­¡¼Ì¾¤Î°ìÍ÷¤òÊÖ¤¹
301    function getKeyList() {
302        foreach($this->keyname as $val) {
303            $arrRet[] = $val;
304        }
305        return $arrRet;
306    }
307   
308    // ¥­¡¼Ì¾¤È°ìÃפ·¤¿ÃͤòÊÖ¤¹
309    function getValue($keyname) {
310        $cnt = 0;
311        foreach($this->keyname as $val) {
312            if($val == $keyname) {
313                $ret = $this->param[$cnt];
314                break;
315            }
316            $cnt++;
317        }
318        return $ret;
319    }
320   
321    function splitCheckBoxes($keyname) {
322        $cnt = 0;
323        foreach($this->keyname as $val) {
324            if($val == $keyname) {
325                $this->param[$cnt] = sfSplitCheckBoxes($this->param[$cnt]);
326            }
327            $cnt++;
328        }
329    }
330   
331    function splitParamCheckBoxes($keyname) {
332        $cnt = 0;
333        foreach($this->keyname as $val) {
334            if($val == $keyname) {
335                if(!is_array($this->param[$cnt])) {
336                    $this->param[$cnt] = split("-", $this->param[$cnt]);
337                }
338            }
339            $cnt++;
340        }
341    }   
342}
343?>
Note: See TracBrowser for help on using the repository browser.