api_get_path(WEB_CODE_PATH)."exercice/exercice.php?".api_get_cidreq(),
"name" => get_lang('Exercices')
);
$is_allowedToEdit = api_is_allowed_to_edit(null, true);
/**
* This function displays the form for import of the zip file with qti2
*/
function ch_qti2_display_form()
{
$name_tools = get_lang('ImportQtiQuiz');
$form = '
';
$formValidator = new FormValidator(
'qti_upload',
'post',
api_get_self()."?".api_get_cidreq(),
null,
array('enctype' => 'multipart/form-data')
);
$formValidator->addElement('header', $name_tools);
$formValidator->addElement('file', 'userFile', get_lang('DownloadFile'));
$formValidator->addElement('style_submit_button', 'submit', get_lang('Send'), 'class="upload"');
$form .= $formValidator->return_form();
echo $form;
}
/**
* This function will import the zip file with the respective qti2
* @param array $array_file ($_FILES)
*/
function ch_qti2_import_file($array_file)
{
$unzip = 0;
$lib_path = api_get_path(LIBRARY_PATH);
require_once $lib_path.'fileUpload.lib.php';
require_once $lib_path.'fileManage.lib.php';
$process = process_uploaded_file($array_file, false);
if (preg_match('/\.zip$/i', $array_file['name'])) {
// if it's a zip, allow zip upload
$unzip = 1;
}
if ($process && $unzip == 1) {
$main_path = api_get_path(SYS_CODE_PATH);
require_once $main_path.'exercice/export/exercise_import.inc.php';
require_once $main_path.'exercice/export/qti2/qti2_classes.php';
return import_exercise($array_file['name']);
}
return 'langFileError';
}
$message = null;
// import file
if ((api_is_allowed_to_edit(null, true))) {
if (isset($_POST['submit'])) {
$imported = ch_qti2_import_file($_FILES['userFile']);
if (is_numeric($imported) && !empty($imported)) {
header('Location: '.api_get_path(WEB_CODE_PATH).'exercice/admin.php?'.api_get_cidreq().'&exerciseId='.$imported);
exit;
} else {
$message = Display::return_message(get_lang($imported));
}
}
}
// Display header
Display::display_header(get_lang('ImportQtiQuiz'), 'Exercises');
echo $message;
// display qti form
ch_qti2_display_form();
// display the footer
Display::display_footer();