From b2bf016e1bba6de19c620b1d9dd8cdad0439c9f5 Mon Sep 17 00:00:00 2001 From: dongsheng Date: Thu, 26 Mar 2009 08:56:08 +0000 Subject: [PATCH] "ADMINLIB/MDL-17966, overwrite write_setting to update settings instead execute sql execute in get_settings, this will not hurt performance, merged from 1.9" --- lib/adminlib.php | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/lib/adminlib.php b/lib/adminlib.php index 695a51c420..ac5a36e8dc 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -2247,13 +2247,12 @@ class admin_setting_special_selectsetup extends admin_setting_configselect { */ class admin_setting_sitesetselect extends admin_setting_configselect { public function get_setting() { - global $SITE, $DB; - $_site = $DB->get_record('course', array('id'=>$SITE->id)); - return $_site->{$this->name}; + $site = get_site(); + return $site->{$this->name}; } public function write_setting($data) { - global $DB; + global $DB, $SITE; if (!in_array($data, array_keys($this->choices))) { return get_string('errorsetting', 'admin'); } @@ -2262,6 +2261,8 @@ class admin_setting_sitesetselect extends admin_setting_configselect { $temp = $this->name; $record->$temp = $data; $record->timemodified = time(); + // update $SITE + $SITE->{$this->name} = $data; return ($DB->update_record('course', $record) ? '' : get_string('errorsetting', 'admin')); } } @@ -2357,17 +2358,18 @@ class admin_setting_courselist_frontpage extends admin_setting { */ class admin_setting_sitesetcheckbox extends admin_setting_configcheckbox { public function get_setting() { - global $SITE, $DB; - $_site = $DB->get_record('course', array('id'=>$SITE->id)); - return $_site->{$this->name}; + $site = get_site(); + return $site->{$this->name}; } public function write_setting($data) { - global $DB; + global $DB, $SITE; $record = new object(); $record->id = SITEID; $record->{$this->name} = ($data == '1' ? 1 : 0); $record->timemodified = time(); + // update $SITE + $SITE->{$this->name} = $data; return ($DB->update_record('course', $record) ? '' : get_string('errorsetting', 'admin')); } } @@ -2378,9 +2380,8 @@ class admin_setting_sitesetcheckbox extends admin_setting_configcheckbox { */ class admin_setting_sitesettext extends admin_setting_configtext { public function get_setting() { - global $SITE, $DB; - $_site = $DB->get_record('course', array('id'=>$SITE->id)); - return $_site->{$this->name}; + $site = get_site(); + return $site->{$this->name}; } public function validate($data) { @@ -2396,7 +2397,7 @@ class admin_setting_sitesettext extends admin_setting_configtext { } public function write_setting($data) { - global $DB; + global $DB, $SITE; $data = trim($data); $validated = $this->validate($data); if ($validated !== true) { @@ -2407,6 +2408,8 @@ class admin_setting_sitesettext extends admin_setting_configtext { $record->id = SITEID; $record->{$this->name} = $data; $record->timemodified = time(); + // update $SITE + $SITE->{$this->name} = $data; return ($DB->update_record('course', $record) ? '' : get_string('dbupdatefailed', 'error')); } } @@ -2420,17 +2423,17 @@ class admin_setting_special_frontpagedesc extends admin_setting { } public function get_setting() { - global $SITE, $DB; - $_site = $DB->get_record('course', array('id'=>$SITE->id)); - return $_site->{$this->name}; + $site = get_site(); + return $site->{$this->name}; } public function write_setting($data) { - global $DB; + global $DB, $SITE; $record = new object(); $record->id = SITEID; $record->{$this->name} = $data; $record->timemodified = time(); + $SITE->{$this->name} = $data; return ($DB->update_record('course', $record) ? '' : get_string('errorsetting', 'admin')); } -- 2.39.5