query->has('lp_id')) { $lp = new learnpath('', $httpRequest->query->getInt('lp_id'), $userId); if (!empty($lp->lp_id)) { $pluginIndex = api_get_path(WEB_CODE_PATH)."lp/lp_controller.php?$cidReq&" .http_build_query(['action' => 'add_item', 'type' => 'step', 'lp' => $lp->lp_id, 'lp_build_selected' => 8]); } } $langAddActivity = $plugin->get_lang('AddActivity'); $formAction = api_get_self()."?$cidReq&".($lp ? http_build_query(['lp_id' => $lp->lp_id]) : ''); $frmActivity = new FormValidator('frm_activity', 'post', $formAction); $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']) ->setLrsAuthPassword($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), $pluginIndex ); $pageContent = $frmActivity->returnForm(); if ($lp) { $interbreadcrumb[] = [ 'url' => api_get_path(WEB_CODE_PATH).'lp/lp_controller.php?action=list&'.api_get_cidreq(), 'name' => get_lang('LearningPaths'), ]; $interbreadcrumb[] = [ 'url' => $pluginIndex, 'name' => $lp->getNameNoTags(), ]; } else { $interbreadcrumb[] = ['url' => $pluginIndex, '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();