From fab45e0566ddc14b74edfbc13c9d6acf261bea44 Mon Sep 17 00:00:00 2001 From: cfoe <cfoe@ispconfig3> Date: Fri, 06 Jul 2012 08:07:32 -0400 Subject: [PATCH] init for default-v2 --- interface/lib/classes/tform.inc.php | 75 ++++++++++++++++++++++++++++++++++--- 1 files changed, 69 insertions(+), 6 deletions(-) diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index b469e2e..c1d1201 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -172,8 +172,14 @@ 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; @@ -619,8 +625,16 @@ 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': @@ -703,6 +717,55 @@ } } 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; } /** @@ -918,7 +981,7 @@ $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 = ''; @@ -1041,7 +1104,7 @@ //* return a empty string if there is nothing to update if(trim($sql_update) == '') $sql = ''; } - + return $sql; } -- Gitblit v1.9.1