From: toyomoyo Date: Thu, 10 May 2007 08:23:44 +0000 (+0000) Subject: adding new global variable to deter which export should write the exported timestamp... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=76127f3797620e09b1f0b09d5fd590de95bcb382;p=moodle.git adding new global variable to deter which export should write the exported timestamp in grade_grades_final table --- diff --git a/admin/settings/courses.php b/admin/settings/courses.php index b1b0edcbaf..7780c3d4b9 100644 --- a/admin/settings/courses.php +++ b/admin/settings/courses.php @@ -47,4 +47,9 @@ $temp->add(new admin_setting_special_backuptime()); $temp->add(new admin_setting_special_backupsaveto()); $ADMIN->add('courses', $temp); +// new CFG variable for coursemanager (what roles to display) +$temp = new admin_settingpage('gradeexport', get_string('gradeexport', 'admin')); +$temp->add(new admin_setting_special_gradeexport()); +$ADMIN->add('courses', $temp); + ?> diff --git a/lib/adminlib.php b/lib/adminlib.php index 4392c8d785..b8d41fb423 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -2563,6 +2563,84 @@ class admin_setting_special_coursemanager extends admin_setting { } } +/* + * this is used in config->courses->gradeexports + * (which roles to show on course decription page) + */ +class admin_setting_special_gradeexport extends admin_setting { + + function admin_setting_special_gradeexport() { + $name = 'gradeexport'; + $visiblename = get_string('gradeexport', 'admin'); + $description = get_string('configgradeexport', 'admin'); + $default = array(3=>'1'); // The teahcer role in a default install + parent::admin_setting($name, $visiblename, $description, $default); + } + + function get_setting() { + + global $CFG; + if (!empty($CFG->{$this->name})) { + $result = explode(',', $CFG->{$this->name}); + foreach ($result as $plugin) { + $array[$plugin] = 1; + } + return $array; + } else if (isset($CFG->{$this->name})) { + return array(); + } else { + return null; + } + } + + function write_setting($data) { + + if (!empty($data)) { + $str = ''; + foreach ($data as $key => $value) { + if ($value) { + $str .= $key.','; + } + } + return set_config($this->name, rtrim($str, ","))?'':get_string('errorsetting', 'admin') . $this->visiblename . '
'; + } else { + return set_config($this->name, '')?'':get_string('errorsetting', 'admin') . $this->visiblename . '
'; + } + } + + function output_html() { + + if ($this->get_setting() === NULL) { + $currentsetting = $this->defaultsetting; + } else { + $currentsetting = $this->get_setting(); + } + // from to process which roles to display + if ($exports = get_list_of_plugins('grade/export')) { + $return = '
'; + $first = true; + foreach ($exports as $export) { + if (is_array($currentsetting) && in_array($export, array_keys($currentsetting))) { + $checked = 'checked="checked"'; + } else { + $checked = ''; + } + if ($first) { + $first = false; + } else { + $return .= '
'; + } + $return .= ' '.$export; + } + $return .= '
'; + } + return format_admin_setting($this->name, $this->visiblename, $return, $this->description, false); + } +} + + + + class admin_setting_special_perfdebug extends admin_setting_configcheckbox { function admin_setting_special_perfdebug() {