$info = restore_read_xml_info($xml_file);
-$siterolesarray = get_assignable_roles (get_context_instance(CONTEXT_COURSE, $course_header->course_id), "shortname");
+$siterolesarray = get_assignable_roles (get_context_instance(CONTEXT_COURSE, $course->id), "shortname");
echo ('<table width="100%" class="restore-form-instances">');
echo ('<tr><td align="right"><b>'.get_string('sourcerole').'</b></td><td align="left"><b>'.get_string('targetrole').'</b></td></tr>');
/// Editting teacher
echo ('<tr><td align="right">');
- print_string('teacheredit');
+ print_string('defaultcourseteacher');
echo ('</td><td algin="left">');
// get the first teacheredit legacy
$roles = get_roles_with_capability('moodle/legacy:editingteacher', CAP_ALLOW, get_context_instance(CONTEXT_SYSTEM, SITEID));
-
+
$editteacher = array_shift($roles);
choose_from_menu ($siterolesarray, "defaultteacheredit", $editteacher->id);
echo ('</td></tr>');
/// Non-editting teacher
echo ('<tr><td align="right">');
- print_string('teacher');
+ print_string('noneditingteacher');
echo ('</td><td algin="left">');
// get the first teacheredit legacy
/// Student
echo ('<tr><td align="right">');
- print_string('student');
+ print_string('defaultcoursestudent');
echo ('</td><td algin="left">');
// get the first teacheredit legacy
} else {
// 1.7 and above backup
-
$roles = restore_read_xml_roles($xml_file);
+ if (is_array($roles)) { // possible to have course with no roles
- foreach ($roles->roles as $roleid=>$role) {
- echo ('<tr><td align="right">');
- echo $role->shortname;
- echo ('</td><td align="left">');
+ foreach ($roles->roles as $roleid=>$role) {
+ echo ('<tr><td align="right">');
+ echo $role->shortname;
+ echo ('</td><td align="left">');
- // see if any short name match
- $matchrole = 0;
- foreach ($siterolesarray as $siteroleid=>$siteroleshortname) {
- if ($siteroleshortname == $role->shortname) {
- $matchrole = $siteroleid;
- break;
- }
- }
+ // see if any short name match
+ $matchrole = 0;
+ foreach ($siterolesarray as $siteroleid=>$siteroleshortname) {
+ if ($siteroleshortname == $role->shortname) {
+ $matchrole = $siteroleid;
+ break;
+ }
+ }
- choose_from_menu ($siterolesarray, "roles_".$roleid, $matchrole, 'new role', '', '0');
- echo ('</td></tr>');
+ choose_from_menu ($siterolesarray, "roles_".$roleid, $matchrole, 'new role', '', '0');
+ echo ('</td></tr>');
+ }
}
} // end else
//Add this instance
$instance->blockid = $blocks[$instance->name]->id;
- if($newid = insert_record('block_instance', $instance)) {
- backup_putid ($restore->backup_unique_code,"block_instance",$instance->id,$newid);
+ if ($newid = insert_record('block_instance', $instance)) {
+ if (!empty($instance->id)) { // this will only be set if we come from 1.7 and above backups
+ backup_putid ($restore->backup_unique_code,"block_instance",$instance->id,$newid);
+ }
} else {
$status = false;
break;
$restore->mods[$mod->type]->granular = true;
}
- if (!$restore->mods[$mod->type]->granular // we don't care about per instance
+ if (empty($restore->mods[$mod->type]->granular) // we don't care about per instance
|| (array_key_exists($mod->instance,$restore->mods[$mod->type]->instances)
&& !empty($restore->mods[$mod->type]->instances[$mod->instance]->restore))) {
// final step of the restore. We don't know it yet.
//print_object($course_module); //Debug
//Save it to db
+
$newidmod = insert_record("course_modules",$course_module);
if ($newidmod) {
//save old and new module id
$user->roles['teacher']->timeend,
0,
$user->roles['teacher']->enrol);
+
// editting teacher
} else {
// non editting teacher
}
//Iterate over each module
foreach ($info as $mod) {
- if (!(isset($restore->mods[$mod->modtype]->granular) && $restore->mods[$mod->modtype]->granular) // We don't care about per instance, i.e. restore all instances.
+ if (empty($restore->mods[$mod->modtype]->granular) // We don't care about per instance, i.e. restore all instances.
|| (array_key_exists($mod->id,$restore->mods[$mod->modtype]->instances)
&& !empty($restore->mods[$mod->modtype]->instances[$mod->id]->restore))) {
$modrestore = $mod->modtype."_restore_mods";
- if (function_exists($modrestore)) {
- //print_object ($mod); //Debug
+ if (function_exists($modrestore)) { //Debug
$status = $status and $modrestore($mod,$restore); //bit operator & not reliable here!
} else {
//Something was wrong. Function should exist.
}
}
- if ($this->tree[7] == "ROLES_ASSIGNMENTS") {
+ if (isset($this->tree[7]) && $this->tree[7] == "ROLES_ASSIGNMENTS") {
if ($this->level == 9) {
switch ($tagName) {
}
} /// ends role_assignments
- if ($this->tree[7] == "ROLES_OVERRIDES") {
+ if (isset($this->tree[7]) && $this->tree[7] == "ROLES_OVERRIDES") {
if ($this->level == 9) {
switch ($tagName) {
case "NAME":
* Restoring from course level overrides *
*****************************************************/
- if (!empty($course->$course->roleoverrides)) {
+ if (!empty($course->roleoverrides)) {
$courseoverrides = $course->roleoverrides;
$rolemappings = $restore->rolesmapping;
foreach ($courseoverrides as $oldroleid => $courseoverride) {