wwwroot/login/index.php"); } //Check site if (!$site = get_site()) { error("Site not found!"); } //Checks for the required files/functions to backup every mod //And check if there is data about it $count = 0; if ($allmods = get_records("modules") ) { foreach ($allmods as $mod) { $modname = $mod->name; $modfile = "$mods_home/$modname/backuplib.php"; $modbackup = $modname."_backup_mods"; $modcheckbackup = $modname."_check_backup_mods"; if (file_exists($modfile)) { include_once($modfile); if (function_exists($modbackup) and function_exists($modcheckbackup)) { $var = "exists_".$modname; $$var = true; $count++; } } //Check data //Check module info $var = "backup_".$modname; if (!isset($$var)) { //Every undefined backup_XXXX isn't exported $$var = 0; } //Now stores all the mods preferences into an array into preferences $preferences->mods[$modname]->backup = $$var; //Check include user info $var = "backup_user_info_".$modname; if (!isset($$var)) { $$var = 1; } //Now stores all the mods preferences into an array into preferences $preferences->mods[$modname]->userinfo = $$var; //And the name of the mod $preferences->mods[$modname]->name = $modname; } } //Check other parameters if (!isset($backup_users)) { $backup_users = 1; } $preferences->backup_users = $backup_users; if (!isset($backup_logs)) { $backup_logs = 1; } $preferences->backup_logs = $backup_logs; if (!isset($backup_user_files)) { $backup_user_files = 1; } $preferences->backup_user_files = $backup_user_files; if (!isset($backup_course_files)) { $backup_course_files = 2; } $preferences->backup_course_files = $backup_course_files; if (!isset($id)) { error ("Course not specified"); } $preferences->backup_course = $id; if (!isset($backup_name)) { error ("Backup name not specified"); } $preferences->backup_name = $backup_name; if (!isset($backup_unique_code)) { error ("Backup unique code not specified"); } $preferences->backup_unique_code = $backup_unique_code; //Another Info $preferences->moodle_version = $version; $preferences->moodle_release = $release; $preferences->backup_version = $backup_version; $preferences->backup_release = $backup_release; if ($count == 0) { notice("No backupable modules are installed!"); } //Start the main table echo ""; //Now print the Backup Name tr echo ""; echo ""; //Start the main tr, where all the backup progress is done echo ""; echo ""; //End the main table echo "

"; echo get_string("name").":"; echo "

"; echo $backup_name; echo "
"; //Start the main ul echo "
    "; //Check for temp and backup and backup_unique_code directory //Create them as needed echo "
  • Creating temporary structures"; $status = check_and_create_backup_dir($backup_unique_code); //Empty dir if ($status) { $status = clear_backup_dir($backup_unique_code); } //Delete old_entries from backup tables echo "
  • Deteting old data"; $status = backup_delete_old_data(); if (!$status) { error ("An error has ocurred"); } //Create the moodle.xml file if ($status) { echo "
  • Creating xml file"; //Begin a new list to xml contents echo "
      "; echo "
    • Writing header"; //Obtain the xml file (create and open) and print prolog information $backup_file = backup_open_xml($backup_unique_code); echo "
    • Writing general info"; //Prints general info about backup to file if ($backup_file) { $status = backup_general_info($backup_file,$preferences); } echo "
    • Writing course data"; //Start new ul (for course) echo "
        "; echo "
      • Course info"; //Prints course start (tag and general info) if ($status) { $status = backup_course_start($backup_file,$preferences); } echo "
      • Sections"; //Section info if ($status) { $status = backup_course_sections($backup_file,$preferences); } //End course contents (close ul) echo "
      "; echo "
    • Writing users info"; //User info if ($status) { $status = backup_user_info($backup_file,$preferences); } //Print logs if selected if ($status) { if ($preferences->backup_logs) { echo "
    • Writing logs info"; $status = backup_log_info($backup_file,$preferences); } } //Module info, this unique function makes all the work!! //db export and module fileis copy if ($status) { $mods_to_backup = false; //Check if we have any mod to backup foreach ($preferences->mods as $module) { if ($module->backup) { $mods_to_backup = true; } } //If we have to backup some module if ($mods_to_backup) { echo "
    • Writing modules info"; //Start modules tag $status = backup_modules_start ($backup_file,$preferences); //Open ul for module list echo "
        "; //Iterate over modules and call backupa foreach ($preferences->mods as $module) { if ($module->backup and $status) { echo "
      • ".$module->name; $status = backup_module($backup_file,$preferences,$module->name); } } //Close ul for module list echo "
      "; //Close modules tag $status = backup_modules_end ($backup_file,$preferences); } } //Prints course end if ($status) { $status = backup_course_end($backup_file,$preferences); } //Close the xml file and xml data if ($backup_file) { backup_close_xml($backup_file); } //End xml contents (close ul) echo "
    "; } //Now, if selected, copy user files if ($status) { if ($preferences->backup_user_files) { echo "
  • Copying user files"; $status = backup_copy_user_files ($preferences); } } //Now, if selected, copy course files if ($status) { if ($preferences->backup_course_files) { echo "
  • Copying course files"; $status = backup_copy_course_files ($preferences); } } //Now, zip all the backup directory contents if ($status) { echo "
  • Zipping backup"; $status = backup_zip ($preferences,$moodle_home); } //Now, copy the zip file to course directory if ($status) { echo "
  • Copying zip file"; $status = copy_zip_to_course_dir ($preferences); } //Now, clean temporary data (db and filesystem) if ($status) { echo "
  • Cleaning up temp data"; $status = clean_temp_data ($preferences); } if (!$status) { error ("An error has ocurred"); } //Ends th main ul echo "
"; //End the main tr, where all the backup is done echo "
"; //Print final message print_simple_box(get_string("backupfinished"),"CENTER"); print_continue($moodle_home."/files/index.php?id=".$preferences->backup_course."&wdir=/".get_string("backupdir")); ?>