get_lang('AddActivity'); $frmActivity = new FormValidator('frm_activity', 'post', api_get_self().'?'.api_get_cidreq()); $frmActivity->addFile('file', $plugin->get_lang('XApiPackage')); $frmActivity->addButtonAdvancedSettings('advanced_params'); $frmActivity->addHtml(''); $frmActivity->addButtonAdvancedSettings('lrs_params', $plugin->get_lang('LrsConfiguration')); $frmActivity->addHtml(''); $frmActivity->addButtonImport(get_lang('Import')); $frmActivity->addRule('file', get_lang('ThisFileIsRequired'), 'required'); $frmActivity->addRule( 'file', $plugin->get_lang('OnlyZipOrXmlAllowed'), 'filetype', ['zip', 'xml'] ); $frmActivity->applyFilter('title', 'trim'); $frmActivity->applyFilter('description', 'trim'); $frmActivity->applyFilter('lrs_url', 'trim'); $frmActivity->applyFilter('lrs_auth', 'trim'); if ($frmActivity->validate()) { $values = $frmActivity->exportValues(); $zipFileInfo = $_FILES['file']; try { $importer = PackageImporter::create($zipFileInfo, $course); $packageFile = $importer->import(); $parser = PackageParser::create( $importer->getPackageType(), $packageFile, $course, $session ); $toolLaunch = $parser->parse(); } catch (Exception $e) { Display::addFlash( Display::return_message($e->getMessage(), 'error') ); header("Location: $pluginIndex"); exit; } if ('tincan' === $importer->getPackageType() && isset($values['allow_multiple_attempts'])) { $toolLaunch->setAllowMultipleAttempts(true); } if (!empty($values['title'])) { $toolLaunch->setTitle($values['title']); } if (!empty($values['description'])) { $toolLaunch->setDescription($values['description']); } if (!empty($values['lrs_url']) && !empty($values['lrs_auth_username']) && !empty($values['lrs_auth_password']) ) { $toolLaunch ->setLrsUrl($values['lrs_url']) ->setLrsAuthUsername($values['lrs_auth_username']) ->setLrsAuthUsername($values['lrs_auth_password']); } $em = Database::getManager(); $em->persist($toolLaunch); $em->flush(); Display::addFlash( Display::return_message($plugin->get_lang('ActivityImported'), 'success') ); header("Location: $pluginIndex"); exit; } $frmActivity->setDefaults(['allow_multiple_attempts' => true]); $actions = Display::url( Display::return_icon('back.png', get_lang('Back'), [], ICON_SIZE_MEDIUM), 'start.php?'.api_get_cidreq() ); $pageContent = $frmActivity->returnForm(); $interbreadcrumb[] = ['url' => 'start.php', 'name' => $plugin->get_lang('ToolTinCan')]; $view = new Template($langAddActivity); $view->assign('header', $langAddActivity); $view->assign( 'actions', Display::toolbarAction( 'xapi_actions', [$actions] ) ); $view->assign('content', $pageContent); $view->display_one_col_template();