}
// 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 ('<tr class="rolecapheading header"><td colspan="10" class="header"><strong>'.
get_component_string($capability->component, $capability->contextlevel).'</strong></td></tr>');
}
}
// 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 ('<tr class="rolecapheading header"><td colspan="10" class="header"><strong>'.get_component_string($capability->component, $capability->contextlevel).'</strong></td></tr>');
}
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:
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);
+
+}
+
?>