MDL-28364 handle question formats that support multiple file types

This commit is contained in:
Jonathon Fowler 2012-02-27 15:25:40 +10:00
parent c4a12afaf9
commit 7da7bfa17d
3 changed files with 23 additions and 1 deletions

View File

@ -102,6 +102,20 @@ class qformat_default {
public function export_file_extension() {
return '.txt';
}
/**
* Check if the given file is capable of being imported by this plugin.
*
* Note that expensive or detailed integrity checks on the file should
* not be performed by this method. Simple file type or magic-number tests
* would be suitable.
*
* @param stored_file $file the file to check
* @return bool whether this plugin can import the file
*/
public function can_import_file($file) {
return ($file->get_mimetype() == $this->mime_type());
}
// Accessor methods

View File

@ -39,6 +39,14 @@ class qformat_blackboard_six extends qformat_default {
function provide_import() {
return true;
}
public function can_import_file($file) {
$mimetypes = array(
mimeinfo('type', '.dat'),
mimeinfo('type', '.zip')
);
return in_array($file->get_mimetype(), $mimetypes);
}
//Function to check and create the needed dir to unzip file to

View File

@ -133,7 +133,7 @@ class question_import_form extends moodleform {
$qformat = new $classname();
$file = reset($files);
if ($file->get_mimetype() != $qformat->mime_type()) {
if (!$qformat->can_import_file($file)) {
$a = new stdClass();
$a->actualtype = $file->get_mimetype();
$a->expectedtype = $qformat->mime_type();