// $data is a string
function write_setting($data) {
- if (is_string($this->paramtype)) {
- if (!$this->validate($data)) {
- return get_string('validateerror', 'admin') . $this->visiblename . '<br />';
- }
- } else {
- if ($data != clean_param($data, $this->paramtype)) {
- return get_string('validateerror', 'admin') . $this->visiblename . '<br />';
- }
+ if (!$this->validate($data)) {
+ return get_string('validateerror', 'admin') . $this->visiblename . '<br />';
}
return (set_config($this->name,$data) ? '' : get_string('errorsetting', 'admin') . $this->visiblename . '<br />');
}
function validate($data) {
- return preg_match($this->paramtype, $data);
+ if (is_string($this->paramtype)) {
+ return preg_match($this->paramtype, $data);
+ } else if ($this->paramtype === PARAM_RAW) {
+ return true;
+ } else {
+ $cleaned = clean_param($data, $this->paramtype);
+ return ("$data" == "$cleaned"); // implicit conversion to string is needed to do exact comparison
+ }
}
function output_html() {
} else {
$current = $this->get_setting();
}
- return format_admin_setting($this->name, $this->visiblename,
- '<input type="text" class="form-text" id="id_s_'.$this->name.'" name="s_'.$this->name.'" value="'.$current.'" />',
+ return format_admin_setting($this->name, $this->visiblename,
+ '<input type="text" class="form-text" id="id_s_'.$this->name.'" name="s_'.$this->name.'" value="'.$current.'" />',
$this->description);
}
} else {
$current = $this->get_setting();
}
- return format_admin_setting($this->name, $this->visiblename,
+ return format_admin_setting($this->name, $this->visiblename,
'<input type="checkbox" class="form-checkbox" id="id_s_'.$this->name.'" name="s_'. $this->name .'" value="1" ' . ($current == true ? 'checked="checked"' : '') . ' />',
$this->description);
}
}
function write_setting($data) {
- if (is_string($this->paramtype)) {
- if (!$this->validate($data)) {
- return get_string('validateerror', 'admin') . $this->visiblename . '<br />';
- }
- } else {
- $data = clean_param($data, $this->paramtype);
+ if (!$this->validate($data)) {
+ return get_string('validateerror', 'admin') . $this->visiblename . '<br />';
}
$record = new stdClass();
return (update_record('course', $record) ? '' : get_string('errorsetting', 'admin') . $this->visiblename . '<br />');
}
- function validate($data) {
- return preg_match($this->paramtype, $data);
- }
-
}
class admin_setting_special_frontpagedesc extends admin_setting {