diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index dde9052a9eb5fa67cfece488d22580844c0ad352..2690c8126a6ad5fb0bb44d594d7093b6610f223b 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -172,8 +172,14 @@ class tform { 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 @@ class tform { 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': @@ -704,6 +718,42 @@ class tform { } 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 = ''; + + //* 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; + default: + $this->errorMessage .= "Unknown Filter: ".$filter['type']; + break; + } + } + } + + return $returnval; + } /** * process the validators for a given field. diff --git a/interface/web/mail/form/mail_domain.tform.php b/interface/web/mail/form/mail_domain.tform.php index fd0c28794b9371f3feb15037dd099db1295d7fa3..9396b814b8d0100b2555e2a9a6cbf625e54fdfc7 100644 --- a/interface/web/mail/form/mail_domain.tform.php +++ b/interface/web/mail/form/mail_domain.tform.php @@ -77,6 +77,9 @@ $form["tabs"]['domain'] = array ( 'domain' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'filters' => array ( 0 => array ( 'type' => 'TOLOWER', + 'event'=> 'SAVE'), + ), 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'domain_error_empty'), 1 => array ( 'type' => 'UNIQUE',