From baea72ec48fc17ba1e58e9263f224639123b9f76 Mon Sep 17 00:00:00 2001 From: toyomoyo Date: Thu, 16 Aug 2007 08:48:53 +0000 Subject: [PATCH] some changes for better capabilities list display --- admin/roles/manage.html | 3 ++- admin/roles/override.html | 3 ++- lib/accesslib.php | 40 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/admin/roles/manage.html b/admin/roles/manage.html index 6af4d4a85e..eb42f3849e 100755 --- a/admin/roles/manage.html +++ b/admin/roles/manage.html @@ -130,7 +130,8 @@ foreach ($capabilities as $capability) { } // prints a breaker if component or name or context level - if ($capability->component != $component or $capability->contextlevel != $contextlevel) { + if (component_level_changed($capability, $component, $contextlevel)) { + //if ($capability->component != $component or $capability->contextlevel != $contextlevel) { echo (''. get_component_string($capability->component, $capability->contextlevel).''); } diff --git a/admin/roles/override.html b/admin/roles/override.html index 614163af78..bdab5946a6 100755 --- a/admin/roles/override.html +++ b/admin/roles/override.html @@ -40,7 +40,8 @@ } // prints a breaker if component or name or context level - if ($capability->component != $component or $capability->contextlevel != $contextlevel) { + //if ($capability->component != $component or $capability->contextlevel != $contextlevel) { + if (component_level_changed($capability, $component, $contextlevel)) { echo (''.get_component_string($capability->component, $capability->contextlevel).''); } diff --git a/lib/accesslib.php b/lib/accesslib.php index 5dfb3071ea..b73521f701 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -3384,7 +3384,13 @@ function get_component_string($component, $contextlevel) { break; case CONTEXT_COURSE: - $string = get_string('course'); + if (preg_match('|^gradeimport/|', $component) + || preg_match('|^gradeexport/|', $component) + || preg_match('|^gradereport/|', $component)) { + $string = get_string('gradebook', 'admin'); + } else { + $string = get_string('course'); + } break; case CONTEXT_GROUP: @@ -4179,4 +4185,36 @@ function rebuild_context_rel($context) { return $i; } +/** + * This function helps admin/roles/manage.php etc to detect if a new line should be printed + * when we read in a new capability + * most of the time, if the 2 components are different we should print a new line, (e.g. course system->rss client) + * but when we are in grade, all reports/import/export capabilites should be together + * @param string a - component string a + * @param string b - component string b + * @return bool - whether 2 component are in different "sections" + */ +function component_level_changed($cap, $comp, $contextlevel) { + + if ($cap->component == 'enrol/authorize' && $comp =='enrol/authorize') { + return false; + } + + if (strstr($cap->component, '/') && strstr($comp, '/')) { + $compsa = explode('/', $cap->component); + $compsb = explode('/', $comp); + + + + // we are in gradebook, still + if (($compsa[0] == 'gradeexport' || $compsa[0] == 'gradeimport' || $compsa[0] == 'gradereport') && + ($compsb[0] == 'gradeexport' || $compsb[0] == 'gradeimport' || $compsb[0] == 'gradereport')) { + return false; + } + } + + return ($cap->component != $comp || $cap->contextlevel != $contextlevel); + +} + ?> -- 2.39.5