Index: branches/unlabeled/unlabeled-1.30.10/core/kernel/utility/formatters.php =================================================================== diff -u -r3699 -r3962 --- branches/unlabeled/unlabeled-1.30.10/core/kernel/utility/formatters.php (.../formatters.php) (revision 3699) +++ branches/unlabeled/unlabeled-1.30.10/core/kernel/utility/formatters.php (.../formatters.php) (revision 3962) @@ -256,18 +256,24 @@ if ($date_format === false) $date_format = $language->GetDBField('DateFormat'); if ($time_format === false) $time_format = $language->GetDBField('TimeFormat'); + $input_format['date'] = $language->GetDBField('InputDateFormat'); + $input_format['time'] = $language->GetDBField('InputTimeFormat'); + if (!isset($field_options['date_time_separator'])) $field_options['date_time_separator'] = ' '; $field_options['format'] = $date_format.$field_options['date_time_separator'].$time_format; + $field_options['input_format'] = $input_format['date'].$field_options['date_time_separator'].$input_format['time']; + $field_options['sub_fields'] = Array('date' => $field_name.'_date', 'time' => $field_name.'_time'); $add_fields = Array(); - $opts = Array('master_field' => $field_name, 'formatter'=>'kDateFormatter', 'format'=>$date_format); + $opts = Array('master_field' => $field_name, 'formatter'=>'kDateFormatter', 'format' => $date_format, 'input_format' => $input_format['date']); if ( isset($field_options['default']) ) $opts['default'] = $field_options['default']; if ( isset($field_options['required']) ) $opts['required'] = $field_options['required']; $add_fields[$field_name.'_date'] = $opts; $opts['format'] = $time_format; + $opts['input_format'] = $input_format['time']; $add_fields[$field_name.'_time'] = $opts; $filter_type = getArrayValue($field_options, 'filter_type'); @@ -316,7 +322,11 @@ if($empty_time === false) $empty_time = adodb_mktime(0,0,0); $object->SetDBField($sub_fields['time'], $empty_time); } - $object->SetField($field, $object->GetField($sub_fields['date']).$options['date_time_separator'].$object->GetField($sub_fields['time'])); + + $input_format['date'] = $object->Fields[ $sub_fields['date'] ]['input_format']; + $input_format['time'] = $object->Fields[ $sub_fields['time'] ]['input_format']; + + $object->SetField($field, $object->GetField($sub_fields['date'], $input_format['date']).$options['date_time_separator'].$object->GetField($sub_fields['time'], $input_format['time'])); } // when in one of sub_fields - call update for master_field to update its value from sub_fields [are you following ? :) ] elseif ($master_field = getArrayValue($options, 'master_field') ) { @@ -423,7 +433,7 @@ if($value == '') return NULL; //return strtotime($value); - $format = $options['format']; + $format = $options['input_format']; if($dt_separator) $format = trim($format, $dt_separator); $object->FieldErrors[$field_name]['params'] = Array( $this->HumanFormat($format), adodb_date($format) ); @@ -555,7 +565,7 @@ function GetSample($field, &$options, &$object) { - return $this->Format( adodb_mktime(), $field, $object); + return $this->Format( adodb_mktime(), $field, $object, $options['input_format']); } }