} else { if (isset($_POST['action']) && $_POST['action'] == 'course_select_form') { $recycle_type = 'select_items'; } } $cr = new CourseRecycler($course); $cr->recycle($recycle_type); Display::display_confirmation_message(get_lang('RecycleFinished')); } elseif (Security::check_token('post') && (isset($_POST['recycle_option']) && $_POST['recycle_option'] == 'select_items')) { // Clear token Security::clear_token(); $cb = new CourseBuilder(); $course = $cb->build(); // Add token to Course select form $hiddenFields['sec_token'] = Security::get_token(); CourseSelectForm::display_form($course, $hiddenFields); } else { $cb = new CourseBuilder(); $course = $cb->build(); if (!$course->has_resources()) { echo get_lang('NoResourcesToRecycle'); } else { Display::display_warning_message(get_lang('RecycleWarning'), false); $form = new FormValidator('recycle_course', 'post', api_get_self() . '?' . api_get_cidreq()); $form->addElement('header', get_lang('SelectOptionForBackup')); $form->addElement('radio', 'recycle_option', null, get_lang('FullRecycle'), 'full_backup'); $form->addElement('radio', 'recycle_option', null, get_lang('LetMeSelectItems'), 'select_items'); $form->addButtonSave(get_lang('RecycleCourse')); $form->setDefaults(array('recycle_option' => 'select_items')); // Add Security token $token = Security::get_token();
<?php } if ($export && $name) { Display::display_confirmation_message(get_lang('BackupCreated')); echo '<br /><a class="btn btn-default" href="' . api_get_path(WEB_CODE_PATH) . 'course_info/download.php?archive=' . urlencode($name) . '&session=true">' . get_lang('Download') . '</a>'; } else { // Display forms especial export if (isset($_POST['backup_option']) && $_POST['backup_option'] == 'select_items') { $cb = new CourseBuilder(); $course = $cb->build_session_course(); if ($course === false) { Display::display_error_message(get_lang('ErrorMsgSpecialExport')); form_special_export(); } else { Display::display_normal_message(get_lang('ToExportSpecialSelect')); CourseSelectForm::display_form_session_export($course); } } else { form_special_export(); } } /* FOOTER */ Display::display_footer(); function form_special_export() { $form = new FormValidator('special_exports', 'post'); $renderer = $form->defaultRenderer(); $renderer->setCustomElementTemplate('<div>{element}</div> '); $form->addElement('radio', 'backup_option', '', get_lang('SpecialCreateFullBackup'), 'full_backup'); $form->addElement('radio', 'backup_option', '', get_lang('SpecialLetMeSelectItems'), 'select_items'); $form->addElement('html', '<br />');
} $recycle_type = ""; if (isset($_POST['recycle_option']) && $_POST['recycle_option'] == 'full_backup') { $recycle_type = 'full_backup'; } else { if (isset($_POST['action']) && $_POST['action'] == 'course_select_form') { $recycle_type = 'select_items'; } } $cr = new CourseRecycler($course); $cr->recycle($recycle_type); Display::display_confirmation_message(get_lang('RecycleFinished')); } elseif (isset($_POST['recycle_option']) && $_POST['recycle_option'] == 'select_items') { $cb = new CourseBuilder(); $course = $cb->build(); CourseSelectForm::display_form($course); } else { $cb = new CourseBuilder(); $course = $cb->build(); if (!$course->has_resources()) { echo get_lang('NoResourcesToRecycle'); } else { Display::display_warning_message(get_lang('RecycleWarning'), false); $form = new FormValidator('recycle_course', 'post', 'recycle_course.php?' . api_get_cidreq()); $form->addElement('header', get_lang('SelectOptionForBackup')); $form->addElement('radio', 'recycle_option', null, get_lang('FullRecycle'), 'full_backup'); $form->addElement('radio', 'recycle_option', null, get_lang('LetMeSelectItems'), 'select_items'); $form->addElement('style_submit_button', 'submit', get_lang('RecycleCourse'), 'class="save"'); $form->setDefaults(array('recycle_option' => 'select_items')); $form->display(); }
/** * Display the form session export * @param array $hidden_fiels Hidden fields to add to the form. * @param boolean the document array will be serialize. This is used in the course_copy.php file */ function display_form_session_export($list_course, $hidden_fields = null, $avoid_serialize = false) { $iconPath = api_get_path(WEB_IMG_PATH); ?> <script> function exp(item) { el = document.getElementById('div_'+item); if (el.style.display=='none'){ el.style.display=''; document.getElementById('img_'+item).src='../img/1.gif'; } else{ el.style.display='none'; document.getElementById('img_'+item).src='../img/0.gif'; } } function setCheckbox(type,value) { d = document.course_select_form; for (i = 0; i < d.elements.length; i++) { if (d.elements[i].type == "checkbox") { var name = d.elements[i].attributes.getNamedItem('name').nodeValue; if( name.indexOf(type) > 0 || type == 'all' ){ d.elements[i].checked = value; } } } } function checkLearnPath(message){ d = document.course_select_form; for (i = 0; i < d.elements.length; i++) { if (d.elements[i].type == "checkbox") { var name = d.elements[i].attributes.getNamedItem('name').nodeValue; if( name.indexOf('learnpath') > 0){ if(d.elements[i].checked){ setCheckbox('document',true); alert(message); break; } } } } } </script> <?php //get destination course title if (!empty($hidden_fields['destination_course'])) { $course_infos = CourseManager::get_course_information($hidden_fields['destination_course']); echo '<h3>'; echo get_lang('DestinationCourse') . ' : ' . $course_infos['title']; echo '</h3>'; } echo '<script src="' . api_get_path(WEB_CODE_PATH) . 'inc/lib/javascript/upload.js" type="text/javascript"></script>'; echo '<script type="text/javascript">var myUpload = new upload(1000);</script>'; echo '<form method="post" id="upload_form" name="course_select_form" onsubmit="myUpload.start(\'dynamic_div\',\'' . api_get_path(WEB_CODE_PATH) . 'img/progress_bar.gif\',\'' . get_lang('PleaseStandBy') . '\',\'upload_form\')">'; echo '<input type="hidden" name="action" value="course_select_form"/>'; foreach ($list_course as $course) { foreach ($course->resources as $type => $resources) { if (count($resources) > 0) { echo '<img id="img_' . $course->code . '" src="' . $iconPath . '1.gif" onclick="javascript:exp(' . "'{$course->code}'" . ');" />'; echo '<b onclick="javascript:exp(' . "'{$course->code}'" . ');" > ' . $course->code . '</b><br />'; echo '<div id="div_' . $course->code . '">'; echo '<blockquote>'; echo '<div class="btn-group">'; echo "<a class=\"btn\" href=\"#\" onclick=\"javascript:setCheckbox('" . $course->code . "',true);\" >" . get_lang('All') . "</a>"; echo "<a class=\"btn\" href=\"#\" onclick=\"javascript:setCheckbox('" . $course->code . "',false);\" >" . get_lang('None') . "</a>"; echo '</div><br />'; foreach ($resources as $id => $resource) { echo '<label class="checkbox" for="resource[' . $course->code . '][' . $id . ']">'; echo '<input type="checkbox" name="resource[' . $course->code . '][' . $id . ']" id="resource[' . $course->code . '][' . $id . ']"/>'; $resource->show(); echo '</label>'; } echo '</blockquote>'; echo '</div>'; echo '<script type="text/javascript">exp(' . "'{$course->code}'" . ')</script>'; } } } if ($avoid_serialize) { //Documents are avoided due the huge amount of memory that the serialize php function "eats" (when there are directories with hundred/thousand of files) // this is a known issue of serialize $course->resources['document'] = null; } echo '<input type="hidden" name="course" value="' . base64_encode(Course::serialize($course)) . '"/>'; if (is_array($hidden_fields)) { foreach ($hidden_fields as $key => $value) { echo "\n"; echo '<input type="hidden" name="' . $key . '" value="' . $value . '"/>'; } } echo '<br /><button class="save" type="submit" onclick="checkLearnPath(\'' . addslashes(get_lang('DocumentsWillBeAddedToo')) . '\')">' . get_lang('Ok') . '</button>'; CourseSelectForm::display_hidden_quiz_questions($course); CourseSelectForm::display_hidden_scorm_directories($course); echo '</form>'; echo '<div id="dynamic_div" style="display:block;margin-left:40%;margin-top:10px;height:50px;"></div>'; }
} CourseArchiver::clean_backup_dir(); // @todo fix fatal error due a file upload header('Location: ' . api_get_path(WEB_COURSE_PATH) . api_get_course_path() . '/index.php'); exit; } elseif (isset($_POST['import_option']) && $_POST['import_option'] == 'select_items') { if ($_POST['backup_type'] == 'server') { $filename = $_POST['backup_server']; $delete_file = false; } else { $filename = CourseArchiver::import_uploaded_file($_FILES['backup']['tmp_name']); $delete_file = true; } $course = CourseArchiver::read_course($filename, $delete_file); if ($course->has_resources() && $filename !== false) { CourseSelectForm::display_form($course, array('same_file_name_option' => $_POST['same_file_name_option'])); } elseif ($filename === false) { Display::display_error_message(get_lang('ArchivesDirectoryNotWriteableContactAdmin')); echo '<a class="btn" href="import_backup.php?' . api_get_cidreq() . '">' . get_lang('TryAgain') . '</a>'; } else { Display::display_warning_message(get_lang('NoResourcesInBackupFile')); echo '<a class="btn" href="import_backup.php?' . api_get_cidreq() . '">' . get_lang('TryAgain') . '</a>'; } } else { $user = api_get_user_info(); $user = $is_platformAdmin ? null : $user['user_id']; $backups = CourseArchiver::get_available_backups($user); $backups_available = count($backups) > 0; $form = new FormValidator('import_backup_form', 'post', api_get_path(WEB_PUBLIC_PATH) . 'main/coursecopy/import_backup.php', '', 'multipart/form-data'); $form->addElement('header', get_lang('SelectBackupFile')); $renderer = $form->defaultRenderer();
$course = CourseSelectForm::get_posted_course('copy_course'); } else { $cb = new CourseBuilder(); $course = $cb->build(); } $cr = new CourseRestorer($course); $cr->set_file_option($_POST['same_file_name_option']); $cr->restore($_POST['destination_course']); Display::display_normal_message(get_lang('CopyFinished') . ': <a href="' . api_get_course_url($_POST['destination_course']) . '">' . $_POST['destination_course'] . '</a>', false); } elseif (isset($_POST['copy_option']) && $_POST['copy_option'] == 'select_items') { $cb = new CourseBuilder(); $course = $cb->build(); $hidden_fields = array(); $hidden_fields['same_file_name_option'] = $_POST['same_file_name_option']; $hidden_fields['destination_course'] = $_POST['destination_course']; CourseSelectForm::display_form($course, $hidden_fields, true); } else { $table_c = Database::get_main_table(TABLE_MAIN_COURSE); $table_cu = Database::get_main_table(TABLE_MAIN_COURSE_USER); $user_info = api_get_user_info(); $course_info = api_get_course_info(); $sql = 'SELECT * FROM ' . $table_c . ' c, ' . $table_cu . ' cu WHERE cu.c_id = c.id'; if (!api_is_platform_admin()) { $sql .= ' AND cu.status=1 '; } $sql .= ' AND target_course_code IS NULL AND cu.user_id = ' . $user_info['user_id'] . ' AND c.code != ' . "'" . $course_info['sysCode'] . "'" . ' ORDER BY title ASC'; $res = Database::query($sql); if (Database::num_rows($res) == 0) { Display::display_normal_message(get_lang('NoDestinationCoursesAvailable')); } else { $options = array();