diff --git a/lib/adminlib.php b/lib/adminlib.php
index 65a04be5054..c7b48ec44c6 100644
--- a/lib/adminlib.php
+++ b/lib/adminlib.php
@@ -2328,64 +2328,43 @@ class admin_setting_special_calendar_weekend extends admin_setting {
$name = 'calendar_weekend';
$visiblename = get_string('calendar_weekend', 'admin');
$description = get_string('helpweekenddays', 'admin');
- $default = array('u' => 1, 'm' => 0, 't' => 0, 'w' => 0, 'r' => 0, 'f' => 0, 's' => 1);
+ $default = 65; // Saturdays and Sundays
parent::admin_setting($name, $visiblename, $description, $default);
}
function get_setting() {
global $CFG;
- if (isset($CFG->{$this->name})) {
- $currentsetting = decbin($CFG->{$this->name});
- $currentsetting = str_pad($currentsetting, 7, '0', STR_PAD_LEFT);
- return array('u' => substr($currentsetting, 0, 1),
- 'm' => substr($currentsetting, 1, 1),
- 't' => substr($currentsetting, 2, 1),
- 'w' => substr($currentsetting, 3, 1),
- 'r' => substr($currentsetting, 4, 1),
- 'f' => substr($currentsetting, 5, 1),
- 's' => substr($currentsetting, 6, 1));
- } else {
- return NULL;
- }
+ return isset($CFG->{$this->name}) ? $CFG->{$this->name} : 0;
}
function write_setting($data) {
- $week = 'umtwrfs';
- $result = array(0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0);
+ $result = 0;
if (!empty($data)) {
- foreach($data as $key => $value) {
- if ($value == '1') {
- $result[strpos($week, $key)] = 1;
- }
+ foreach($data as $index) {
+ $result |= 1 << $index;
}
}
- return (set_config($this->name, bindec(implode('',$result))) ? '' : get_string('errorsetting', 'admin') . $this->visiblename . '
');
+ return (set_config($this->name, $result) ? '' : get_string('errorsetting', 'admin') . $this->visiblename . '
');
}
function output_html() {
-
if ($this->get_setting() === NULL) {
$currentsetting = $this->defaultsetting;
} else {
$currentsetting = $this->get_setting();
}
- // rewrite for simplicity
- $currentsetting = $currentsetting['u'] . $currentsetting['m'] . $currentsetting['t'] . $currentsetting['w'] .
- $currentsetting['r'] . $currentsetting['f'] . $currentsetting['s'];
-
- $return = '
' . get_string('sunday', 'calendar') . ' | ' .
- get_string('monday', 'calendar') . ' | ' . get_string('tuesday', 'calendar') . ' | ' .
- get_string('wednesday', 'calendar') . ' | ' . get_string('thursday', 'calendar') . ' | ' .
- get_string('friday', 'calendar') . ' | ' . get_string('saturday', 'calendar') . ' |
| ' . - ' | ' . - ' | ' . - ' | ' . - ' | ' . - ' | ' . - ' | ' . - ' |
| '; + } + $return .= ' |
| '; + } + $return .= ' |