mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00
MDL-18535:
Adding checks for field name mismatches and "proper" error messages. Merged from STABLE19
This commit is contained in:
parent
aa907a94fc
commit
f24222e2a2
1 changed files with 15 additions and 1 deletions
|
@ -102,10 +102,23 @@
|
||||||
$recordsadded = 0;
|
$recordsadded = 0;
|
||||||
|
|
||||||
if (!$records = data_get_records_csv($filename, $fielddelimiter, $fieldenclosure)) {
|
if (!$records = data_get_records_csv($filename, $fielddelimiter, $fieldenclosure)) {
|
||||||
print_error('get_records_csv failed to read data from the uploaded file. Please check file for field name typos and formatting errors.');
|
print_error('csvfailed','data',"{$CFG->wwwroot}/mod/data/edit.php?d={$data->id}");
|
||||||
} else {
|
} else {
|
||||||
$fieldnames = array_shift($records);
|
$fieldnames = array_shift($records);
|
||||||
|
|
||||||
|
// check the fieldnames are valid
|
||||||
|
$fields = $DB->get_records('data_fields', array('dataid'=>$data->id), '', 'name, id, type');
|
||||||
|
$errorfield = '';
|
||||||
|
foreach ($fieldnames as $name) {
|
||||||
|
if (!isset($fields[$name])) {
|
||||||
|
$errorfield .= "'$name' ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($errorfield)) {
|
||||||
|
print_error('fieldnotmatched','data',"{$CFG->wwwroot}/mod/data/edit.php?d={$data->id}",$errorfield);
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($records as $record) {
|
foreach ($records as $record) {
|
||||||
if ($recordid = data_add_record($data, 0)) { // add instance to data_record
|
if ($recordid = data_add_record($data, 0)) { // add instance to data_record
|
||||||
$fields = $DB->get_records('data_fields', array('dataid'=>$data->id), '', 'name, id, type');
|
$fields = $DB->get_records('data_fields', array('dataid'=>$data->id), '', 'name, id, type');
|
||||||
|
@ -195,6 +208,7 @@ function my_file_get_contents($filename, $use_include_path = 0) {
|
||||||
function data_get_records_csv($filename, $fielddelimiter=',', $fieldenclosure="\n") {
|
function data_get_records_csv($filename, $fielddelimiter=',', $fieldenclosure="\n") {
|
||||||
global $DB;
|
global $DB;
|
||||||
|
|
||||||
|
|
||||||
if (empty($fielddelimiter)) {
|
if (empty($fielddelimiter)) {
|
||||||
$fielddelimiter = ',';
|
$fielddelimiter = ',';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue