* @package dokeos.backup * ============================================================================== */ /* ============================================================================== INIT SECTION ============================================================================== */ // name of the language file that needs to be included $language_file = array('coursebackup','admin'); // including the global file include ('../inc/global.inc.php'); // Check access rights (only teachers are allowed here) if( ! api_is_allowed_to_edit()) { api_not_allowed(true); } //remove memory and time limits as much as possible as this might be a long process... if(function_exists('ini_set')) { ini_set('memory_limit','256M'); ini_set('max_execution_time',1800); } // section for the tabs $this_section=SECTION_COURSES; // breadcrumbs $interbreadcrumb[] = array ("url" => "../course_info/maintenance.php", "name" => get_lang('Maintenance')); // Displaying the header $nameTools = get_lang('ImportBackup'); Display::display_header($nameTools); // include additional libraries include_once(api_get_path(LIBRARY_PATH) . 'fileManage.lib.php'); require_once('classes/CourseBuilder.class.php'); require_once('classes/CourseArchiver.class.php'); require_once('classes/CourseRestorer.class.php'); require_once('classes/CourseSelectForm.class.php'); // Display the tool title api_display_tool_title($nameTools); /* ============================================================================== MAIN CODE ============================================================================== */ if( (isset($_POST['action']) && $_POST['action'] == 'course_select_form' ) || (isset($_POST['import_option']) && $_POST['import_option'] == 'full_backup' ) ) { $error=false; if(isset($_POST['action']) && $_POST['action'] == 'course_select_form' ) { $course = CourseSelectForm::get_posted_course(); } else { if( $_POST['backup_type'] == 'server') { $filename = $_POST['backup_server']; $delete_file = false; } else { if($_FILES['backup']['error']==0){ $filename = CourseArchiver::import_uploaded_file($_FILES['backup']['tmp_name']); $delete_file = true; } else{ $error=true; } } $course = CourseArchiver::read_course($filename,$delete_file); } if( $course->has_resources()) { $cr = new CourseRestorer($course); $cr->set_file_option($_POST['same_file_name_option']); $cr->restore(); echo get_lang('ImportFinished'); } else { if(!$error){ echo get_lang('NoResourcesInBackupFile'); } else{ echo get_lang('UploadError'); } } CourseArchiver::clean_backup_dir(); echo '
<< '.get_lang('CourseHomepage').'
'; } 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()) { CourseSelectForm::display_form($course,array('same_file_name_option'=>$_POST['same_file_name_option'])); } else { echo get_lang('NoResourcesInBackupFile'); echo '<< '.get_lang('CourseHomepage').'
'; } } else { $user = api_get_user_info(); $backups = CourseArchiver::get_available_backups($is_platformAdmin?null:$user['user_id']); $backups_available = (count($backups)>0); echo get_lang('SelectBackupFile').'