Added some helper functions, cleanup a bit and add missing parts. MDL-10721 ; merged from 19_STABLE

This commit is contained in:
stronk7
2008-01-26 22:00:40 +00:00
parent 78ea91bc73
commit 56ef28a4a3
2 changed files with 90 additions and 63 deletions
+42 -45
View File
@@ -404,6 +404,7 @@ function schedule_backup_course_configure($course,$starttime = 0) {
}
}
}
// now set instances
if ($coursemods = get_course_mods($course->id)) {
foreach ($coursemods as $mod) {
@@ -418,6 +419,13 @@ function schedule_backup_course_configure($course,$starttime = 0) {
}
}
}
// finally, clean all the $preferences->mods[] not having instances. Nothing to backup about them
foreach ($preferences->mods as $modname => $mod) {
if (!isset($mod->instances)) {
unset($preferences->mods[$modname]);
}
}
}
//Convert other parameters
@@ -434,53 +442,28 @@ function schedule_backup_course_configure($course,$starttime = 0) {
$preferences->backup_keep = $backup_config->backup_sche_keep;
}
//Calculate the backup string
//Calculate various backup preferences
if ($status) {
schedule_backup_log($starttime,$course->id," calculating backup name");
//Calculate the backup word
//Take off some characters in the filename !!
$takeoff = array(" ", ":", "/", "\\", "|");
$backup_word = str_replace($takeoff,"_",moodle_strtolower(get_string("backupfilename")));
//If non-translated, use "backup"
if (substr($backup_word,0,1) == "[") {
$backup_word= "backup";
}
//Calculate the date format string
$backup_date_format = str_replace(" ","_",get_string("backupnameformat"));
//If non-translated, use "%Y%m%d-%H%M"
if (substr($backup_date_format,0,1) == "[") {
$backup_date_format = "%%Y%%m%%d-%%H%%M";
}
//Calculate the shortname
$backup_shortname = clean_filename($course->shortname);
if (empty($backup_shortname) or $backup_shortname == '_' ) {
$backup_shortname = $course->id;
}
//Calculate the final backup filename
//The backup word
$backup_name = $backup_word."-";
//The shortname
$backup_name .= moodle_strtolower($backup_shortname)."-";
//The date format
$backup_name .= userdate(time(),$backup_date_format,99,false);
//The extension
$backup_name .= ".zip";
//And finally, clean everything
$backup_name = clean_filename($backup_name);
//Calculate the backup file name
$backup_name = backup_get_zipfile_name($course);
//Calculate the string to match the keep preference
$keep_name = $backup_word."-";
//The shortname
$keep_name .= moodle_strtolower($backup_shortname)."-";
//And finally, clean everything
$keep_name = clean_filename($keep_name);
$keep_name = backup_get_keep_name($course);
//Set them
$preferences->backup_name = $backup_name;
$preferences->keep_name = $keep_name;
//Roleasignments
$roles = get_records('role', '', '', 'sortorder');
foreach ($roles as $role) {
$preferences->backuproleassignments[$role->id] = $role;
}
//Another Info
backup_add_static_preferences($preferences);
}
//Calculate the backup unique code to allow simultaneus backups (to define
@@ -567,6 +550,8 @@ function schedule_backup_course_configure($course,$starttime = 0) {
return $status;
}
//TODO: Unify this function with backup_execute() to have both backups 100% equivalent. Moodle 2.0
//This function implements all the needed code to backup a course
//copying it to the desired destination (default if not specified)
function schedule_backup_course_execute($preferences,$starttime = 0) {
@@ -575,12 +560,6 @@ function schedule_backup_course_execute($preferences,$starttime = 0) {
$status = true;
//Another Info to add
$preferences->moodle_version = $CFG->version;
$preferences->moodle_release = $CFG->release;
$preferences->backup_version = $CFG->backup_version;
$preferences->backup_release = $CFG->backup_release;
//Some parts of the backup doesn't know about $preferences, so we
//put a copy of it inside that CFG (always global) to be able to
//use it. Then, when needed I search for preferences inside CFG
@@ -676,6 +655,18 @@ function schedule_backup_course_execute($preferences,$starttime = 0) {
$status = backup_groups_info($backup_file,$preferences);
}
//Print groupings info
if ($status) {
schedule_backup_log($starttime,$preferences->backup_course," groupings");
$status = backup_groupings_info($backup_file,$preferences);
}
//Print groupings_groups info
if ($status) {
schedule_backup_log($starttime,$preferences->backup_course," groupings_groups");
$status = backup_groupings_groups_info($backup_file,$preferences);
}
//Print events info
if ($status) {
schedule_backup_log($starttime,$preferences->backup_course," events");
@@ -715,6 +706,12 @@ function schedule_backup_course_execute($preferences,$starttime = 0) {
}
}
//Backup course format data, if any.
if ($status) {
schedule_backup_log($starttime,$preferences->backup_course," course format data");
$status = backup_format_data($backup_file,$preferences);
}
//Prints course end
if ($status) {
$status = backup_course_end($backup_file,$preferences);
+48 -18
View File
@@ -3195,30 +3195,38 @@
}
/**
* This function generates the default zipfile name for a backup
* based on the course id and the unique code.
*
* @param object $course course object
* @param string $backup_unique_code (optional, if left out current timestamp used)
*
* This function calculates the "backup" part of the file name
* from lang files. Used both in manual and scheduled backups
*
* @param object $course course object
* @return string "backup" part of the filename
*/
function backup_get_backup_string($course) {
* @return string filename (excluding path information)
*/
function backup_get_zipfile_name($course, $backup_unique_code='') {
if (empty($backup_unique_code)) {
$backup_unique_code = time();
}
//Calculate the backup word
//Take off some characters in the filename !!
/// Calculate the backup word
/// Take off some characters in the filename !!
$takeoff = array(" ", ":", "/", "\\", "|");
$backup_word = str_replace($takeoff,"_",moodle_strtolower(get_string("backupfilename")));
//If non-translated, use "backup"
/// If non-translated, use "backup"
if (substr($backup_word,0,1) == "[") {
$backup_word= "backup";
}
return $backup_word;
}
/**
* This function generates the default zipfile name for a backup
* based on the course shortname
*
* @param object $course course object
* @return string filename (excluding path information)
*/
function backup_get_zipfile_name($course) {
//Calculate the backup word
$backup_word = backup_get_backup_string($course);
//Calculate the date format string
$backup_date_format = str_replace(" ","_",get_string("backupnameformat"));
//If non-translated, use "%Y%m%d-%H%M"
@@ -3245,9 +3253,31 @@
$backup_name = clean_filename($backup_name);
return $backup_name;
}
/**
* This function generates the common file substring for a course
* used to keep n copies by the scheduled backup
*
* @param object $course course object
* @return string common part of filename in backups of this course
*/
function backup_get_keep_name($course) {
//Calculate the backup word
$backup_word = backup_get_backup_string($course);
//Calculate the shortname
$backup_shortname = clean_filename($course->shortname);
if (empty($backup_shortname) or $backup_shortname == '_' ) {
$backup_shortname = $course->id;
}
$keep_name = $backup_word . "-" . moodle_strtolower($backup_shortname)."-";
$keep_name = clean_filename($keep_name);
return $keep_name;
}
/**
* This function adds on the standard items to the preferences
* Like moodle version and backup version