function questions_import_form_submit in Quiz 6.6
Same name and namespace in other branches
- 6.3 includes/questions_import/questions_import.admin.inc \questions_import_form_submit()
@function This is a generic questions import submit function calls specific import function like questions_import_submit_csv, questions_import_submit_multichoice_aiken
Return value
integer number of questions imported to a quiz node.
1 string reference to 'questions_import_form_submit'
- questions_import_form in includes/
questions_import/ questions_import.admin.inc - @function Implementation of hook_form() provides form to upload questions
File
- includes/
questions_import/ questions_import.admin.inc, line 358 - Administration file for Questions Import module
Code
function questions_import_form_submit(&$form, &$form_state) {
$time = 0;
$op = '';
$destination_node = _get_destination_node($form_state);
$import_type_info = explode('_', $form_state['values']['import_type']);
$import_engine = $import_type_info[0];
$import_format = $import_type_info[1];
$question_type = $form_state['values']['question_type'];
$start = microtime(TRUE);
$status = array();
// would be nice to make this a TIMESTAMP field so it's automatic, but that would bind it to MySQL
$date = date('YmdHis');
$fid = $form_state['values']['validated_file']->fid;
db_query("INSERT INTO {quiz_questions_import_record} (file_id, datetime, status_array, importer) VALUES (%d, '%s', '%s', '%s')", $fid, $date, serialize($status), $form_state['values']['import_type']);
$import_id = db_last_insert_id('quiz_questions_import_record', 'import_id');
switch ($import_engine) {
case 'native':
$file = file_save_upload('upload');
$import_function_name = "questions_import_submit_{$import_format}";
$count = $import_function_name($destination_node, $form, $form_state, $import_id);
break;
case 'moodle':
$count = questions_import_submit_moodle_format($destination_node, $import_format, $form, $form_state, $import_id);
break;
}
// $count contains number of questions successfully imported.
$end = microtime(TRUE);
$time = substr($end - $start, 0, 6);
if ($count) {
drupal_set_message(t('@count questions were imported successfully in @time seconds.', array(
'@count' => $count,
'@time' => $time,
)));
/*
* when the questions destination is "new_quiz" questions importer will
* create a quiz node by itself, whose properties were not defined properly.
* so redirecting the quiz author to quiz node/$nid/edit page
* where he/she can set the quiz node properties.
*/
$url = $form_state['values']['destination_type'] == 'new_quiz' ? "node/{$destination_node->nid}/edit" : "node/{$destination_node->nid}";
drupal_goto($url);
}
return $count;
}