get_lang('AddActivity'); $frmActivity = new FormValidator('frm_activity', 'post', api_get_self().'?'.api_get_cidreq()); $frmActivity->addHeader($langAddActivity); $frmActivity->addFile('file', $plugin->get_lang('TinCanPackage')); $frmActivity->addCheckBox('allow_multiple_attempts', '', get_lang('AllowMultipleAttempts')); $frmActivity->addButtonAdvancedSettings('advanced_params'); $frmActivity->addHtml(''); $frmActivity->addButtonImport(get_lang('Import')); $frmActivity->addRule('file', get_lang('ThisFileIsRequired'), 'required'); $frmActivity->addRule( 'file', $plugin->get_lang('OnlyZipAllowed'), 'filetype', ['zip'] ); $frmActivity->applyFilter('title', 'trim'); $frmActivity->applyFilter('description', 'trim'); if ($frmActivity->validate()) { $values = $frmActivity->exportValues(); $zipFileInfo = $_FILES['file']; try { $tinCanFile = TinCanImporter::create($zipFileInfo, $course)->import(); $toolLaunch = TinCanParser::create($tinCanFile, $course, $session)->parse(); } catch (Exception $e) { Display::addFlash( Display::return_message($e->getMessage(), 'error') ); exit; } $toolLaunch->setAllowMultipleAttempts( isset($values['allow_multiple_attempts']) ); if (!empty($values['title'])) { $toolLaunch->setTitle($values['title']); } if (!empty($values['description'])) { $toolLaunch->setDescription($values['description']); } $em = Database::getManager(); $em->persist($toolLaunch); $em->flush(); $plugin->createLaunchCourseTool($toolLaunch); Display::addFlash( Display::return_message($plugin->get_lang('ActivityImported'), 'success') ); header('Location: '.api_get_course_url()); exit; } $frmActivity->setDefaults(['allow_multiple_attempts' => true]); $pageTitle = $plugin->get_title(); $pageContent = $frmActivity->returnForm(); $interbreadcrumb[] = ['url' => 'list.php', 'name' => $pageTitle]; $view = new Template($langAddActivity); $view->assign('header', $pageTitle); $view->assign('content', $pageContent); $view->display_one_col_template();