Check valid extra field date/datetime type see BT#16339

pull/3167/head
Julio Montoya 6 years ago
parent c70416f76b
commit 1b86854c33
  1. 10
      main/admin/statistics/index.php
  2. 26
      main/inc/lib/extra_field_value.lib.php

@ -1262,6 +1262,9 @@ switch ($report) {
while ($row = Database::fetch_array($query)) {
$usersFound++;
if (!empty($row['value'])) {
$validDate = DateTime::createFromFormat('Y-m-d', $row['value']);
$validDate = $validDate && $validDate->format('Y-m-d') === $row['value'];
if ($validDate) {
$date1 = new DateTime($row['value']);
$interval = $now->diff($date1);
$years = (int) $interval->y;
@ -1275,11 +1278,7 @@ switch ($report) {
if ($years >= 26 && $years <= 30) {
$all['26-30']++;
}
/*if ($years >= 31) {
$all[get_lang('N/A')] += 1;
}*/
} else {
//$all[get_lang('N/A')] += 1;
}
}
}
@ -1294,7 +1293,6 @@ switch ($report) {
}
$header = Display::page_subheader2(get_lang('TotalNumberOfStudents').': '.$studentCount);
$content = $header.$extraTables.$graph.$content;
}

@ -367,6 +367,32 @@ class ExtraFieldValue extends Model
];
$this->save($newParams);
break;
case ExtraField::FIELD_TYPE_DATE:
$d = DateTime::createFromFormat('Y-m-d', $value);
$valid = $d && $d->format('Y-m-d') === $value;
if ($valid) {
$newParams = [
'item_id' => $params['item_id'],
'field_id' => $extraFieldInfo['id'],
'value' => $value,
'comment' => $comment,
];
$this->save($newParams, $showQuery);
}
break;
case ExtraField::FIELD_TYPE_DATETIME:
$d = DateTime::createFromFormat('Y-m-d H:i', $value);
$valid = $d && $d->format('Y-m-d H:i') === $value;
if ($valid) {
$newParams = [
'item_id' => $params['item_id'],
'field_id' => $extraFieldInfo['id'],
'value' => $value,
'comment' => $comment,
];
$this->save($newParams, $showQuery);
}
break;
default:
$newParams = [

Loading…
Cancel
Save