From: defacer Date: Tue, 27 Feb 2007 12:42:08 +0000 (+0000) Subject: Merging from MOODLE_17_STABLE: X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=4af8d5d3ca00e649fe014eed75594a2dcc9bd781;p=moodle.git Merging from MOODLE_17_STABLE: Fix for MDL-8402: $CFG->calendar_weekdays wasn't saved correctly and misbehaved. I took the opportunity to rewrite a little HTML too. --- diff --git a/lib/adminlib.php b/lib/adminlib.php index 65a04be505..c7b48ec44c 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') . '  
'; + // The order matters very much because of the implied numeric keys + $days = array('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'); + $return = ''; + foreach($days as $index => $day) { + $return .= ''; + } + $return .= ''; + foreach($days as $index => $day) { + $return .= ''; + } + $return .= '
'; return format_admin_setting($this->name, $this->visiblename, $return, $this->description, false); diff --git a/theme/standard/styles_layout.css b/theme/standard/styles_layout.css index 6fb43f5a25..08d11cb149 100644 --- a/theme/standard/styles_layout.css +++ b/theme/standard/styles_layout.css @@ -919,6 +919,20 @@ body#admin-modules table.generaltable td.c0 border-style: solid; } +#adminsettings #admin-calendar_weekend table { + width: 100%; +} + +#adminsettings #admin-calendar_weekend table td { + text-align: center; +} + +#adminsettings #admin-calendar_weekend table td label { + width: 100%; + text-align: center; + float: none; +} + /*** *** Blocks