Index: trunk/core/kernel/utility/formatters/date_formatter.php
===================================================================
diff -u -N -r8567 -r8842
--- trunk/core/kernel/utility/formatters/date_formatter.php (.../date_formatter.php) (revision 8567)
+++ trunk/core/kernel/utility/formatters/date_formatter.php (.../date_formatter.php) (revision 8842)
@@ -257,7 +257,14 @@
return $res;
}
-//function Parse($value, $options, &$errors)
+ /**
+ * Converts formatted date+time to timestamp and validates format
+ *
+ * @param mixed $value
+ * @param string $field_name
+ * @param kDBItem $object
+ * @return string
+ */
function Parse($value, $field_name, &$object)
{
$options = $object->GetFieldOptions($field_name);
@@ -268,10 +275,11 @@
//return strtotime($value);
$format = $options['input_format'];
- if($dt_separator) $format = trim($format, $dt_separator);
+ if ($dt_separator) $format = trim($format, $dt_separator);
- $object->FieldErrors[$field_name]['params'] = Array( $this->HumanFormat($format), adodb_date($format) );
- $object->FieldErrors[$field_name]['value'] = $value;
+ $error_field = isset($this->Fields[$field_name]['error_field']) ? $this->Fields[$field_name]['error_field'] : $field_name;
+ $object->FieldErrors[$error_field]['params'] = Array( $this->HumanFormat($format), adodb_date($format) );
+ $object->FieldErrors[$error_field]['value'] = $value;
$hour = 0;
$minute = 0;
@@ -297,7 +305,7 @@
$holders_mask = eregi_replace('[a-zA-Z]{1}', '([a-zA-Z]{1})', $format);
if (!ereg($holders_mask, $format, $holders)) {
- $object->FieldErrors[$field_name]['pseudo'] = 'bad_date_format';
+ $object->SetError($field_name, 'bad_date_format');
return $value;
}
@@ -308,7 +316,7 @@
// echo " values_mask : $values_mask
";
if (!preg_match($values_mask, $value, $values)) {
- $object->FieldErrors[$field_name]['pseudo'] = 'bad_date_format';
+ $object->SetError($field_name, 'bad_date_format');
return $value;
}
@@ -362,35 +370,35 @@
//echo "day: $day, month: $month, year: $year, hour: $hour, minute: $minute
";
/*if (!($year >= 1970 && $year <= 2037)) {
- $object->FieldErrors[$field_name]['pseudo'] = 'bad_date_format';
+ $object->SetError($field_name, 'bad_date_format');
return $value;
}*/
if (!($month >= 1 && $month <= 12)) {
- $object->FieldErrors[$field_name]['pseudo'] = 'bad_date_format';
+ $object->SetError($field_name, 'bad_date_format');
return $value;
}
$months_days = Array ( 1 => 31,2 => 28, 3 => 31, 4 => 30,5 => 31,6 => 30, 7 => 31, 8 => 31,9 => 30,10 => 31,11 => 30,12 => 31);
if ($year % 4 == 0) $months_days[2] = 29;
if (!($day >=1 && $day <= $months_days[$month])) {
- $object->FieldErrors[$field_name]['pseudo'] = 'bad_date_format';
+ $object->SetError($field_name, 'bad_date_format');
return $value;
}
if (!($hour >=0 && $hour <= 23)) {
- $object->FieldErrors[$field_name]['pseudo'] = 'bad_date_format';
+ $object->SetError($field_name, 'bad_date_format');
return $value;
}
if (!($minute >=0 && $minute <= 59)) {
- $object->FieldErrors[$field_name]['pseudo'] = 'bad_date_format';
+ $object->SetError($field_name, 'bad_date_format');
return $value;
}
if (!($second >=0 && $second <= 59)) {
- $object->FieldErrors[$field_name]['pseudo'] = 'bad_date_format';
+ $object->SetError($field_name, 'bad_date_format');
return $value;
}