From: tjhunt Date: Wed, 15 Jul 2009 06:33:13 +0000 (+0000) Subject: blocks editing ui: MDL-19398 give users a path back after assigning block roles X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=4a3b4620212c918b9d2d6b161a3bddb0dcb7c50b;p=moodle.git blocks editing ui: MDL-19398 give users a path back after assigning block roles --- diff --git a/admin/roles/assign.php b/admin/roles/assign.php index 54625a2619..3025499cda 100755 --- a/admin/roles/assign.php +++ b/admin/roles/assign.php @@ -42,6 +42,7 @@ $hidden = optional_param('hidden', 0, PARAM_BOOL); // whether this assignment is hidden $extendperiod = optional_param('extendperiod', 0, PARAM_INT); $extendbase = optional_param('extendbase', 3, PARAM_INT); + $returnurl = optional_param('returnurl', null, PARAM_LOCALURL); $urlparams = array('contextid' => $contextid); if (!empty($userid)) { @@ -50,6 +51,9 @@ if ($courseid && $courseid != SITEID) { $urlparams['courseid'] = $courseid; } + if ($returnurl) { + $urlparams['returnurl'] = $returnurl; + } $PAGE->set_url($CFG->admin . '/roles/assign.php', $urlparams); $baseurl = $PAGE->url->out(); @@ -445,12 +449,10 @@ if (!$isfrontpage && ($url = get_context_url($context))) { echo ''; + } else if ($returnurl) { + echo ''; } } - if ($context->contextlevel == CONTEXT_SYSTEM || $isfrontpage) { - admin_externalpage_print_footer(); - } else { - print_footer(); - } -?> + print_footer(); diff --git a/admin/roles/check.php b/admin/roles/check.php index 4153ae8db5..ae6a14d742 100755 --- a/admin/roles/check.php +++ b/admin/roles/check.php @@ -36,6 +36,7 @@ $contextid = required_param('contextid',PARAM_INT); $userid = optional_param('userid', 0, PARAM_INT); // needed for user tabs $courseid = optional_param('courseid', 0, PARAM_INT); // needed for user tabs + $returnurl = optional_param('returnurl', null, PARAM_LOCALURL); $urlparams = array('contextid' => $contextid); if (!empty($userid)) { @@ -44,6 +45,9 @@ if ($courseid && $courseid != SITEID) { $urlparams['courseid'] = $courseid; } + if ($returnurl) { + $urlparams['returnurl'] = $returnurl; + } $PAGE->set_url($CFG->admin . '/roles/check.php', $urlparams); if (! $context = get_context_instance_by_id($contextid)) { @@ -184,6 +188,9 @@ if (!$isfrontpage && ($url = get_context_url($context))) { echo ''; + } else if ($returnurl) { + echo ''; } print_footer(); diff --git a/admin/roles/override.php b/admin/roles/override.php index 85ce08860c..c8cf6ee85b 100755 --- a/admin/roles/override.php +++ b/admin/roles/override.php @@ -37,6 +37,7 @@ $roleid = optional_param('roleid', 0, PARAM_INT); // requested role id $userid = optional_param('userid', 0, PARAM_INT); // needed for user tabs $courseid = optional_param('courseid', 0, PARAM_INT); // needed for user tabs + $returnurl = optional_param('returnurl', null, PARAM_LOCALURL); /// Get the base URL for this and related pages into a convenient variable. $urlparams = array('contextid' => $contextid); @@ -46,6 +47,9 @@ if ($courseid && $courseid != SITEID) { $urlparams['courseid'] = $courseid; } + if ($returnurl) { + $urlparams['returnurl'] = $returnurl; + } $PAGE->set_url($CFG->admin . '/roles/override.php', $urlparams); $baseurl = $PAGE->url->out(); @@ -257,8 +261,10 @@ if (!$isfrontpage && ($url = get_context_url($context))) { echo ''; + } else if ($returnurl) { + echo ''; } } print_footer(); -?> \ No newline at end of file diff --git a/admin/roles/tabs.php b/admin/roles/tabs.php index 0d106bb60b..569dac303e 100755 --- a/admin/roles/tabs.php +++ b/admin/roles/tabs.php @@ -169,6 +169,12 @@ $activetwo = array(); if ($context->contextlevel != CONTEXT_SYSTEM) { // Print tabs for anything except SYSTEM context + if (!empty($returnurl)) { + $returnurlparam = '&returnurl=' . $returnurl; + } else { + $returnurlparam = ''; + } + if ($context->contextlevel == CONTEXT_MODULE) { // Only show update button if module $toprow[] = new tabobject('update', $CFG->wwwroot.'/course/mod.php?update='. $context->instanceid.'&return=true&sesskey='.sesskey(), get_string('settings')); @@ -176,20 +182,20 @@ if ($context->contextlevel != CONTEXT_SYSTEM) { // Print tabs for anything ex if (!empty($assignableroles) || $currenttab=='assign') { $toprow[] = new tabobject('assign', - $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$context->id, + $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$context->id.$returnurlparam, get_string('localroles', 'role'), '', true); } if (!empty($overridableroles)) { $toprow[] = new tabobject('override', - $CFG->wwwroot.'/'.$CFG->admin.'/roles/override.php?contextid='.$context->id, + $CFG->wwwroot.'/'.$CFG->admin.'/roles/override.php?contextid='.$context->id.$returnurlparam, get_string('overridepermissions', 'role'), '', true); } if (has_any_capability(array('moodle/role:assign', 'moodle/role:safeoverride', 'moodle/role:override', 'moodle/role:assign'), $context)) { $toprow[] = new tabobject('check', - $CFG->wwwroot.'/'.$CFG->admin.'/roles/check.php?contextid='.$context->id, + $CFG->wwwroot.'/'.$CFG->admin.'/roles/check.php?contextid='.$context->id.$returnurlparam, get_string('checkpermissions', 'role')); } diff --git a/lang/en_utf8/moodle.php b/lang/en_utf8/moodle.php index 799660494e..0ddc7820ad 100644 --- a/lang/en_utf8/moodle.php +++ b/lang/en_utf8/moodle.php @@ -140,6 +140,7 @@ $string['backtoparticipants'] = 'Back to participants list'; $string['back'] = 'Back'; $string['backto'] = 'Back to $a'; $string['backtocourselisting'] = 'Back to course listing'; +$string['backtopageyouwereon'] = 'Back to the page you were on'; $string['backup'] = 'Backup'; $string['backupactivehelp'] = 'Choose whether or not to do automated backups.'; $string['backupcancelled'] = 'Backup Cancelled'; diff --git a/lib/blocklib.php b/lib/blocklib.php index 46baf10948..a6d9433d86 100644 --- a/lib/blocklib.php +++ b/lib/blocklib.php @@ -851,10 +851,12 @@ function block_edit_controls($block, $page) { $controls = array(); $actionurl = $page->url->out_action(); + $returnurlparam = '&returnurl=' . urlencode($page->url->out_returnurl()); // Assign roles icon. if (has_capability('moodle/role:assign', $block->context)) { - $controls[] = array('url' => $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$block->context->id, + $controls[] = array('url' => $CFG->wwwroot . '/' . $CFG->admin . + '/roles/assign.php?contextid=' . $block->context->id . $returnurlparam, 'icon' => 'i/roles', 'caption' => get_string('assignroles', 'role')); } @@ -874,7 +876,7 @@ function block_edit_controls($block, $page) { if (!empty($block->instance->blockpositionid)) { $editurl .= '&positionid=' . $block->instance->blockpositionid; } - $controls[] = array('url' => $editurl . '&returnurl=' . urlencode($page->url->out_returnurl()), + $controls[] = array('url' => $editurl . $returnurlparam, 'icon' => 't/edit', 'caption' => get_string('configuration')); }