function _datex_node_edit_form_author_date_validate in Datex 7
Element validation callback for date fields.
1 string reference to '_datex_node_edit_form_author_date_validate'
- datex_form_alter in ./
datex.module - Implements hook_form_alter().
File
- ./
datex.module, line 209 - Convert output of date_format() to Jalali in a patched drupal installation.
Code
function _datex_node_edit_form_author_date_validate($element, &$form_state, $form) {
if (_datex_skip_language() || empty($element['#value'])) {
return;
}
$element['#value'] = DatexFormatter::decor($element['#value'], FALSE);
$m = array();
$ok = preg_match('#^([0-9]{2,4})[-\\/\\\\]([0-9]{1,2})[-\\/\\\\]([0-9]{1,2})( {1,}([0-9]{1,2})\\:([0-9]{1,2})\\:([0-9]{1,2}))?#', $element['#value'], $m);
// 1969: It's a dirty hack: If entered year is less than EPOCH limit, Then
// probably is it Jalali otherwise it is Gregorian.
if ($ok && count($m) == 8 && (int) $m[1] < 1969) {
$date = array(
'hour' => $m[5],
'minute' => $m[6],
'second' => $m[7],
'year' => $m[1],
'month' => $m[2],
'day' => $m[3],
);
$date = new DatexObject($date, DATEX_JALALI, date_default_timezone_get());
$element['#value'] = $date
->xformat('Y-m-d H:i:s O');
form_set_value($element, $element['#value'], $form_state);
}
else {
form_set_error($element['#name'], t('You have to specify a valid date.'));
}
}