| | |
| | | if(isset($record[$table_idx])) $new_record[$table_idx] = intval($record[$table_idx ]); |
| | | |
| | | if(is_array($record)) { |
| | | foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { |
| | | switch ($field['datatype']) { |
| | | foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { |
| | | |
| | | //* Apply filter to record value. |
| | | if(isset($field['filters']) && is_array($field['filters'])) { |
| | | $record[$key] = $this->filterField($key, (isset($record[$key]))?$record[$key]:'', $field['filters'], 'SHOW'); |
| | | } |
| | | |
| | | switch ($field['datatype']) { |
| | | case 'VARCHAR': |
| | | $new_record[$key] = $record[$key]; |
| | | break; |
| | |
| | | $record = $this->decode($record,$tab); |
| | | if(is_array($record)) { |
| | | foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { |
| | | $val = $record[$key]; |
| | | |
| | | if(isset($record[$key])) { |
| | | $val = $record[$key]; |
| | | } else { |
| | | $val = ''; |
| | | } |
| | | |
| | | // If Datasource is set, get the data from there |
| | | if(isset($field['datasource']) && is_array($field['datasource'])) { |
| | |
| | | break; |
| | | |
| | | default: |
| | | if(isset($record[$key])) { |
| | | $new_record[$key] = htmlspecialchars($record[$key]); |
| | | } else { |
| | | $new_record[$key] = ''; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | if(is_array($record)) { |
| | | foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { |
| | | |
| | | if(isset($field['validators']) && is_array($field['validators'])) $this->validateField($key, (isset($record[$key]))?$record[$key]:'', $field['validators']); |
| | | |
| | | //* Apply filter to record value |
| | | if(isset($field['filters']) && is_array($field['filters'])) { |
| | | $record[$key] = $this->filterField($key, (isset($record[$key]))?$record[$key]:'', $field['filters'], 'SAVE'); |
| | | } |
| | | |
| | | //* Validate record value |
| | | if(isset($field['validators']) && is_array($field['validators'])) { |
| | | $this->validateField($key, (isset($record[$key]))?$record[$key]:'', $field['validators']); |
| | | } |
| | | |
| | | switch ($field['datatype']) { |
| | | case 'VARCHAR': |
| | |
| | | } |
| | | return $new_record; |
| | | } |
| | | |
| | | /** |
| | | * process the filters for a given field. |
| | | * |
| | | * @param field_name = Name of the field |
| | | * @param field_value = value of the field |
| | | * @param filters = Array of filters |
| | | * @param filter_event = 'SAVE'or 'SHOW' |
| | | * @return record |
| | | */ |
| | | |
| | | function filterField($field_name, $field_value, $filters, $filter_event) { |
| | | |
| | | global $app; |
| | | $returnval = $field_value; |
| | | |
| | | //* Loop trough all filters |
| | | foreach($filters as $filter) { |
| | | if($filter['event'] == $filter_event) { |
| | | switch ($filter['type']) { |
| | | case 'TOLOWER': |
| | | $returnval = strtolower($field_value); |
| | | break; |
| | | case 'TOUPPER': |
| | | $returnval = strtoupper($field_value); |
| | | break; |
| | | case 'IDNTOASCII': |
| | | if(function_exists('idn_to_ascii')) { |
| | | $returnval = idn_to_ascii($field_value); |
| | | } else { |
| | | $returnval = $field_value; |
| | | } |
| | | break; |
| | | case 'IDNTOUTF8': |
| | | if(function_exists('idn_to_utf8')) { |
| | | $returnval = idn_to_utf8($field_value); |
| | | } else { |
| | | $returnval = $field_value; |
| | | } |
| | | break; |
| | | default: |
| | | $this->errorMessage .= "Unknown Filter: ".$filter['type']; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return $returnval; |
| | | } |
| | | |
| | | /** |
| | | * process the validators for a given field. |
| | |
| | | } |
| | | break; |
| | | case 'ISEMAIL': |
| | | if(!preg_match("/^\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\w+\.[a-zA-Z0-9\-]{2,30}$/i", $field_value)) { |
| | | if(function_exists('filter_var')) { |
| | | if(filter_var($field_value, FILTER_VALIDATE_EMAIL) === false) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($this->wordbook[$errmsg])) { |
| | | $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; |
| | | } else { |
| | | $this->errorMessage .= $errmsg."<br />\r\n"; |
| | | } |
| | | } |
| | | } else { |
| | | if(!preg_match("/^\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\w+\.[a-zA-Z0-9\-]{2,30}$/i", $field_value)) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($this->wordbook[$errmsg])) { |
| | | $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; |
| | |
| | | $this->errorMessage .= $errmsg."<br />\r\n"; |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case 'ISINT': |
| | | if(function_exists('filter_var')) { |
| | | if($field_value != '' && filter_var($field_value, FILTER_VALIDATE_INT) === false) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($this->wordbook[$errmsg])) { |
| | | $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; |
| | | } else { |
| | | $this->errorMessage .= $errmsg."<br />\r\n"; |
| | | } |
| | | } |
| | | } else { |
| | | $tmpval = intval($field_value); |
| | | if($tmpval === 0 and !empty($field_value)) { |
| | | $errmsg = $validator['errmsg']; |
| | |
| | | $this->errorMessage .= $errmsg."<br />\r\n"; |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case 'ISPOSITIVE': |
| | | if(!is_numeric($field_value) || $field_value <= 0){ |
| | |
| | | } |
| | | } |
| | | break; |
| | | case 'RANGE': |
| | | //* Checks if the value is within the given range or above / below a value |
| | | //* Range examples: < 10 = ":10", between 2 and 10 = "2:10", above 5 = "5:". |
| | | $range_parts = explode(':',trim($validator['range'])); |
| | | $ok = true; |
| | | if($range_parts[0] != '' && $field_value < $range_parts[0]) { |
| | | $ok = false; |
| | | } |
| | | if($range_parts[1] != '' && $field_value > $range_parts[1]) { |
| | | $ok = false; |
| | | } |
| | | if($ok != true) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($this->wordbook[$errmsg])) { |
| | | $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; |
| | | } else { |
| | | $this->errorMessage .= $errmsg."<br />\r\n"; |
| | | } |
| | | } |
| | | unset($range_parts); |
| | | break; |
| | | case 'CUSTOM': |
| | | // Calls a custom class to validate this record |
| | | if($validator['class'] != '' and $validator['function'] != '') { |
| | |
| | | $this->action = $action; |
| | | $this->primary_id = $primary_id; |
| | | |
| | | $record = $this->encode($record,$tab); |
| | | $record = $this->encode($record,$tab,true); |
| | | $sql_insert_key = ''; |
| | | $sql_insert_val = ''; |
| | | $sql_update = ''; |
| | |
| | | //* return a empty string if there is nothing to update |
| | | if(trim($sql_update) == '') $sql = ''; |
| | | } |
| | | |
| | | |
| | | return $sql; |
| | | } |
| | | |
| | |
| | | $app->uses('tform_tpl_generator'); |
| | | $app->tform_tpl_generator->buildHTML($this->formDef,$tab['name']); |
| | | } |
| | | |
| | | $app->tpl->setVar('readonly_tab', (isset($tab['readonly']) && $tab['readonly'] == true)); |
| | | $app->tpl->setInclude('content_tpl',$tab["template"]); |
| | | $tab["active"] = 1; |
| | | $_SESSION["s"]["form"]["tab"] = $tab['name']; |