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

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

@ -1262,24 +1262,23 @@ switch ($report) {
while ($row = Database::fetch_array($query)) {
$usersFound++;
if (!empty($row['value'])) {
$date1 = new DateTime($row['value']);
$interval = $now->diff($date1);
$years = (int) $interval->y;
if ($years >= 16 && $years <= 17) {
$all['16-17']++;
}
if ($years >= 18 && $years <= 25) {
$all['18-25']++;
}
if ($years >= 26 && $years <= 30) {
$all['26-30']++;
$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;
if ($years >= 16 && $years <= 17) {
$all['16-17']++;
}
if ($years >= 18 && $years <= 25) {
$all['18-25']++;
}
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