controller = &$controller; } function setForm($form = array(), $actionUrl = null, $method = nulll){ $this->form = $form; if ($actionUrl!=null){ if($method != null){ $this->method = $method; } $regEx = "^(ftp|http|https)://(www.)?"; if(!ereg($regEx,$actionUrl)){ $regEx = "^[A-Z][a-z]+/[a-z]+$"; if(ereg($regEx,$actionUrl)){ $url_ar = explode('/',$actionUrl); $actionUrl = strrchr(ROOT, "/").'/'.Inflector::pluralize(strtolower($url_ar[0])).'/'.$url_ar[1]; } } $this->actionUrl = $actionUrl; } else { $this->actionUrl = false; } } function submit(){ if($this->valid){ $elem = Inflector::camelize(key($this->form)." ".key($this->form[key($this->form)])); $submitStr = ""; $submitStr = ""; return $submitStr; } } function jsRedirect(){ if($this->valid){ $redirStr = ""; $redirStr = ""; return $redirStr; } } function confirm($initField = string, $fields = array(), $errormsg = string){ $init_ar = explode("/",$initField); foreach($fields as $field){ if($this->form[$init_ar[0]][$init_ar[1]] != $field){ $this->valid = false; $this->errors[$initField]['confirm'] = $errormsg; break; } } } function required($fields = array()){ foreach ($fields as $field){ $field_ar = explode('/',$field); if(is_array($this->controller->{$field_ar[0]}->validate[$field_ar[1]])){ foreach ($this->controller->{$field_ar[0]}->validate[$field_ar[1]] as $key => $required){ if(!preg_match($required['expression'],$this->form[$field_ar[0]][$field_ar[1]])){ $this->errors[$field]['required'][$key] = $required['message']; $this->valid = false; } } } else { if(!preg_match($this->controller->{$field_ar[0]}->validate[$field_ar[1]],$this->form[$field_ar[0]][$field_ar[1]])){ $this->errors[$field]['required'][$field_ar[1]] = Inflector::humanize(str_replace("_id","",$field_ar[1]))." is required."; $this->valid = false; } } } } function unique($table = array()){ foreach ($table as $key => $fields): foreach($fields as $field): $field_ar = explode('/',$field); $model = $field_ar[0]; $fieldName = $field_ar[1]; $tableField = str_replace('/','.',$field); $result = $this->controller->User->find(array($tableField =>$this->form[$model][$fieldName]) ,$tableField); if(!empty($result)){ $this->errors[$field]['unique'] = $this->form[$model][$fieldName].' already exsists in the db.'; $this->valid = false; } endforeach; endforeach; } function changeClass($errorClass = string){ $this->classFlag = $errorClass; } function changeClassFun (){ if (!$this->valid){ $classStr = ""; $classStr = "" ; return $classStr; } } function validate (){ switch ($this->return){ case 'array': return $this->errors; break; case 'html': $this->html = '