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

Revision 7418, 8.2 KB checked in by kakinaka, 20 years ago (diff)

* empty log message *

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