diff --git a/course/view.php b/course/view.php index e428a26531a..00c675464a1 100644 --- a/course/view.php +++ b/course/view.php @@ -20,6 +20,7 @@ $marker = optional_param('marker',-1 , PARAM_INT); $switchrole = optional_param('switchrole',-1, PARAM_INT); $modchooser = optional_param('modchooser', -1, PARAM_BOOL); + $return = optional_param('return', 0, PARAM_LOCALURL); $params = array(); if (!empty($name)) { @@ -139,6 +140,8 @@ // Redirect to site root if Editing is toggled on frontpage if ($course->id == SITEID) { redirect($CFG->wwwroot .'/?redirect=0'); + } else if (!empty($return)) { + redirect($CFG->wwwroot . $return); } else { $url = new moodle_url($PAGE->url, array('notifyeditingon' => 1)); redirect($url); @@ -152,6 +155,8 @@ // Redirect to site root if Editing is toggled on frontpage if ($course->id == SITEID) { redirect($CFG->wwwroot .'/?redirect=0'); + } else if (!empty($return)) { + redirect($CFG->wwwroot . $return); } else { redirect($PAGE->url); } diff --git a/lib/navigationlib.php b/lib/navigationlib.php index 1a5a9320c43..c445b38e567 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -3497,7 +3497,7 @@ class settings_navigation extends navigation_node { $baseurl->param('sesskey', sesskey()); } else { // Edit on the main course page. - $baseurl = new moodle_url('/course/view.php', array('id'=>$course->id, 'sesskey'=>sesskey())); + $baseurl = new moodle_url('/course/view.php', array('id'=>$course->id, 'return'=>$this->page->url->out_as_local_url(false), 'sesskey'=>sesskey())); } $editurl = clone($baseurl);