From b2744afe617eca5ad73084f2eb618ae8dd69869a Mon Sep 17 00:00:00 2001 From: tjhunt Date: Tue, 11 Dec 2007 15:55:42 +0000 Subject: [PATCH] MDL-12542 - backup_todb not called on restore on date before it is inserted into mdl_user. This would cause a backup from a pre 1.7 site (or a pre 1.7 that has been upgraded to 1.9) to a 1.9 fresh install, to fail sometimes. Backported from MOODLE_19_STABLE. --- backup/restorelib.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backup/restorelib.php b/backup/restorelib.php index f617168af7c..685404326f3 100644 --- a/backup/restorelib.php +++ b/backup/restorelib.php @@ -1497,7 +1497,7 @@ //in backup_ids->info will be the real info (serialized) $info = restore_read_xml_users($restore,$xml_file); } - + //Now, get evey user_id from $info and user data from $backup_ids //and create the necessary records (users, user_students, user_teachers //user_course_creators and user_admins @@ -1509,8 +1509,16 @@ $languages = get_list_of_languages(); foreach ($info->users as $userid) { - $rec = backup_getid($restore->backup_unique_code,"user",$userid); + $rec = backup_getid($restore->backup_unique_code,"user",$userid); $user = $rec->info; + foreach (array_keys(get_object_vars($user)) as $field) { + if (!is_array($user->$field)) { + $user->$field = backup_todb($user->$field); + if (is_null($user->$field)) { + $user->$field = ''; + } + } + } //Now, recode some languages (Moodle 1.5) if ($user->lang == 'ma_nt') {