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

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