From: dongsheng Date: Tue, 13 May 2008 02:56:51 +0000 (+0000) Subject: "MDL-14442, Import all records of a database activity that has been exported as CSV... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=f85c75b72e53d3aba58cfae9dd939533efe4cdde;p=moodle.git "MDL-14442, Import all records of a database activity that has been exported as CSV, merged from MOODLE_19_STABLE, thanks, Robert" --- diff --git a/mod/data/import.php b/mod/data/import.php index a5ac877cab..8e24d1bcbd 100755 --- a/mod/data/import.php +++ b/mod/data/import.php @@ -111,27 +111,40 @@ if ($recordid = data_add_record($data, 0)) { // add instance to data_record $fields = get_records('data_fields', 'dataid', $data->id, '', 'name, id, type'); - // do a manual round of inserting, to make sure even empty contents get stored + // Insert new data_content fields with NULL contents: foreach ($fields as $field) { + $content = new object(); $content->recordid = $recordid; $content->fieldid = $field->id; insert_record('data_content', $content); } - // for each field in the add form, add it to the data_content. + // Fill data_content with the values imported from the CSV file: foreach ($record as $key => $value) { $name = $fieldnames[$key]; $field = $fields[$name]; - require_once($CFG->dirroot.'/mod/data/field/'.$field->type.'/field.class.php'); - $newfield = 'data_field_'.$field->type; - $currentfield = new $newfield($field->id); - - $currentfield->update_content($recordid, $value, $name); + $content = new object(); + $content->fieldid = $field->id; + $content->recordid = $recordid; + // for now, only for "latlong" and "url" fields, but that should better be looked up from + // $CFG->dirroot . '/mod/data/field/' . $field->type . '/field.class.php' + // once there is stored how many contents the field can have. + if (preg_match("/^(latlong|url)$/", $field->type)) { + $values = explode(" ", clean_param($value, PARAM_NOTAGS), 2); + $content->content = $values[0]; + $content->content1 = $values[1]; + } else { + $content->content = clean_param($value, PARAM_NOTAGS); + } + $oldcontent = get_record('data_content', 'fieldid', $field->id, 'recordid', $recordid); + $content->id = $oldcontent->id; + update_record('data_content', $content); } $recordsadded++; + print get_string('added', 'moodle', $recordsadded) . ". " . get_string('entry', 'data') . " (ID $recordid)
\n"; } - } // End foreach - } // End else - }//sun without love motivo atillas + } + } + } if ($recordsadded > 0) { notify($recordsadded. ' '. get_string('recordssaved', 'data'));