function questions_import_form_validate in Quiz 6.6
Same name and namespace in other branches
- 6.3 includes/questions_import/questions_import.admin.inc \questions_import_form_validate()
Implementation of hook_validate()
1 string reference to 'questions_import_form_validate'
- 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 155 - Administration file for Questions Import module
Code
function questions_import_form_validate($form, &$form_state) {
// TODO make the allowed extensions depend on the import type
$allowed_extensions = 'csv txt xml jcl jqz';
// it suppose to be a string which file extensions separated by space not an array
$allowed_size = file_upload_max_size();
$field_separator = $form_state['values']['field_separator'];
$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'];
// put in a quiz_import dir within the files directory
$import_archive_path = file_directory_path() . '/' . QUIZ_QUESTIONS_UPLOAD_ARCHIVE_PATH;
file_check_directory($import_archive_path, FILE_CREATE_DIRECTORY);
// creates a drupal file object, to be saved in form_state as validated_file
// one thread says this is bad, http://drupal.org/node/73684
// but another says it's proper, http://www.imedstudios.com/labs/node/22
// and it works. -ta
$file = file_save_upload('upload', array(), $import_archive_path);
if (!$file) {
form_set_error('upload', 'You must select a valid file to upload.');
}
else {
$validate_extensions = !$form_state['values']['ignore_filename_extensions'];
if ($validate_extensions) {
$error_msg = question_import_validate_extensions($file, $allowed_extensions);
}
if ($error_msg != '') {
form_set_error('upload', $error_msg);
}
$error_msg = question_import_validate_size($file, $allowed_size);
if ($error_msg != '') {
form_set_error('upload', $error_msg);
}
switch ($import_engine) {
case 'native':
$validator_function_name = "questions_import_validate_{$import_format}";
$error_msg = $validator_function_name($file, $field_separator);
break;
case 'moodle':
// FIXME no validating yet for Moodle
break;
}
if ($error_msg != '') {
form_set_error('upload', $error_msg);
}
else {
// assume upload file validates so keep it
$success = file_set_status($file, FILE_STATUS_PERMANENT);
if ($success) {
$form_state['values']['validated_file'] = $file;
}
else {
form_set_error('upload', "Failed to store file permanently");
}
}
}
}