$defaultinfo = '';
}
+ $current = $this->get_setting();
+ $warning = '';
+ if (is_null($current)) {
+ //first run
+ } else if (empty($current) and (array_key_exists('', $this->choices) or array_key_exists(0, $this->choices))) {
+ // no warning
+ } else if (!array_key_exists($current, $this->choices)) {
+ $warning = get_string('warningcurrentsetting', 'admin', s($current));
+ if (!is_null($default) and $data==$current) {
+ $data = $default; // use default instead of first value when showing the form
+ }
+ }
+
$return = '<div class="form-select"><select id="'.$this->get_id().'" name="'.$this->get_full_name().'">';
foreach ($this->choices as $key => $value) {
// the string cast is needed because key may be integer - 0 is equal to most strings!
}
$return .= '</select>'.$defaultinfo.'</div>';
- return format_admin_setting($this, $this->visiblename, $return, $this->description);
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, true, $warning);
}
}
* @param string $description
* @param bool $label link label to id
*/
-function format_admin_setting($setting, $title='', $form='', $description='', $label=true) {
+function format_admin_setting($setting, $title='', $form='', $description='', $label=true, $warning='') {
global $CFG;
$name = $setting->name;
}
if (empty($setting->plugin) and array_key_exists($name, $CFG->config_php_settings)) {
- $override = '<span class="form-overridden">'.get_string('configoverride', 'admin').'</span>';
+ $override = '<div class="form-overridden">'.get_string('configoverride', 'admin').'</div>';
} else {
$override = '';
}
+ if ($warning !== '') {
+ $warning = '<div class="form-warning">'.$warning.'</div>';
+ }
+
$str = '
<div class="form-item" id="admin-'.$setting->name.'">
-<div class="form-label"><label '.$labelfor.'>'.$title.'<span class="form-shortname">'.$name.'</span>'.$override.'</label></div>
+<div class="form-label"><label '.$labelfor.'>'.$title.'<span class="form-shortname">'.$name.'</span>'.$override.$warning.'</label></div>
<div class="form-setting">'.$form.'</div>
<div class="form-description">'.$description.'</div>
</div>';