diff --git a/lib/adminlib.php b/lib/adminlib.php
index e7ec76b0090..a36a4f3663a 100644
--- a/lib/adminlib.php
+++ b/lib/adminlib.php
@@ -1566,7 +1566,7 @@ class admin_setting {
* @param mixed data array or string depending on setting
* @return string
*/
- function output_html($data) {
+ function output_html($data, $query='') {
// should be overridden
return;
}
@@ -1594,6 +1594,22 @@ class admin_setting {
if (strpos($textlib->strtolower($this->description), $query) !== false) {
return true;
}
+ $current = $this->get_setting();
+ if (!is_null($current)) {
+ if (is_string($current)) {
+ if (strpos($textlib->strtolower($current), $query) !== false) {
+ return true;
+ }
+ }
+ }
+ $default = $this->get_defaultsetting();
+ if (!is_null($default)) {
+ if (is_string($default)) {
+ if (strpos($textlib->strtolower($default), $query) !== false) {
+ return true;
+ }
+ }
+ }
return false;
}
}
@@ -1625,13 +1641,13 @@ class admin_setting_heading extends admin_setting {
return '';
}
- function output_html($data) {
+ function output_html($data, $query='') {
$return = '';
if ($this->visiblename != '') {
- $return .= print_heading(''.$this->visiblename.'', '', 3, 'main', true);
+ $return .= print_heading(''.highlightfast($query, $this->visiblename).'', '', 3, 'main', true);
}
if ($this->description != '') {
- $return .= print_box($this->description, 'generalbox formsettingheading', '', true);
+ $return .= print_box(highlight($query, $this->description), 'generalbox formsettingheading', '', true);
}
return $return;
}
@@ -1700,18 +1716,9 @@ class admin_setting_configtext extends admin_setting {
}
}
- function output_html($data) {
+ function output_html($data, $query='') {
$default = $this->get_defaultsetting();
- if (!is_null($default)) {
- if ($default === '') {
- $default = get_string('emptysettingvalue', 'admin');
- }
- $defaultinfo = ''.get_string('defaultsettinginfo', 'admin', s($default)).'';
- } else {
- $defaultinfo = '';
- }
-
if ($this->paramtype === PARAM_INT) {
$paramclass = 'class="number"';
} else {
@@ -1719,10 +1726,8 @@ class admin_setting_configtext extends admin_setting {
}
return format_admin_setting($this, $this->visiblename,
- '
'
- .''
- .$defaultinfo.'
',
- $this->description);
+ '',
+ $this->description, true, '', $default, $query);
}
}
@@ -1739,21 +1744,17 @@ class admin_setting_configtextarea extends admin_setting_configtext {
parent::admin_setting_configtext($name, $visiblename, $description, $defaultsetting, $paramtype);
}
- function output_html($data) {
+ function output_html($data, $query='') {
$default = $this->get_defaultsetting();
- if (!is_null($default)) {
- if ($default === '') {
- $default = get_string('emptysettingvalue', 'admin');
- }
- $defaultinfo = ''.get_string('defaultsettinginfo', 'admin', '
'.format_text($default, FORMAT_PLAIN)).'
';
- } else {
- $defaultinfo = '';
- }
+ $defaultinfo = $default;
+ if (!is_null($default) and $default !== '') {
+ $defaultinfo = "\n".$default;
+ }
return format_admin_setting($this, $this->visiblename,
- ''.$defaultinfo.'
',
- $this->description);
+ '',
+ $this->description, true, '', $defaultinfo, $query);
}
}
@@ -1772,7 +1773,7 @@ class admin_setting_configpasswordunmask extends admin_setting_configtext {
parent::admin_setting_configtext($name, $visiblename, $description, $defaultsetting, PARAM_RAW);
}
- function output_html($data) {
+ function output_html($data, $query='') {
$id = $this->get_id();
$unmask = get_string('unmaskpassword', 'form');
$unmaskjs = '';
return format_admin_setting($this, $this->visiblename,
''.$unmaskjs.'
',
- $this->description);
+ $this->description, true, '', NULL, $query);
}
}
@@ -1801,18 +1802,9 @@ class admin_setting_configexecutable extends admin_setting_configtext {
parent::admin_setting_configtext($name, $visiblename, $description, $defaultpath, PARAM_RAW);
}
- function output_html($data) {
+ function output_html($data, $query='') {
$default = $this->get_defaultsetting();
- if (!is_null($default)) {
- if ($default === '') {
- $default = get_string('emptysettingvalue', 'admin');
- }
- $defaultinfo = ''.get_string('defaultsettinginfo', 'admin', s($default)).'';
- } else {
- $defaultinfo = '';
- }
-
if ($data) {
if (file_exists($data) and is_executable($data)) {
$executable = '✔';
@@ -1824,10 +1816,8 @@ class admin_setting_configexecutable extends admin_setting_configtext {
}
return format_admin_setting($this, $this->visiblename,
- ''
- .''.$executable
- .$defaultinfo.'
',
- $this->description);
+ ''.$executable.'
',
+ $this->description, true, '', $default, $query);
}
}
@@ -1846,18 +1836,9 @@ class admin_setting_configdirectory extends admin_setting_configtext {
parent::admin_setting_configtext($name, $visiblename, $description, $defaultdirectory, PARAM_RAW);
}
- function output_html($data) {
+ function output_html($data, $query='') {
$default = $this->get_defaultsetting();
- if (!is_null($default)) {
- if ($default === '') {
- $default = get_string('emptysettingvalue', 'admin');
- }
- $defaultinfo = ''.get_string('defaultsettinginfo', 'admin', s($default)).'';
- } else {
- $defaultinfo = '';
- }
-
if ($data) {
if (file_exists($data) and is_dir($data)) {
$executable = '✔';
@@ -1869,10 +1850,8 @@ class admin_setting_configdirectory extends admin_setting_configtext {
}
return format_admin_setting($this, $this->visiblename,
- ''
- .''.$executable
- .$defaultinfo.'
',
- $this->description);
+ ''.$executable.'
',
+ $this->description, true, '', $default, $query);
}
}
@@ -1911,18 +1890,17 @@ class admin_setting_configcheckbox extends admin_setting {
return ($this->config_write($this->name, $data) ? '' : get_string('errorsetting', 'admin'));
}
- function output_html($data) {
+ function output_html($data, $query='') {
$default = $this->get_defaultsetting();
if (!is_null($default)) {
if ((string)$default === $this->yes) {
- $str = get_string('checkboxyes', 'admin');
+ $defaultinfo = get_string('checkboxyes', 'admin');
} else {
- $str = get_string('checkboxno', 'admin');
+ $defaultinfo = get_string('checkboxno', 'admin');
}
- $defaultinfo = ''.get_string('defaultsettinginfo', 'admin', $str).'';
} else {
- $defaultinfo = '';
+ $defaultinfo = NULL;
}
if ((string)$data === $this->yes) { // convert to strings before comparison
@@ -1932,10 +1910,9 @@ class admin_setting_configcheckbox extends admin_setting {
}
return format_admin_setting($this, $this->visiblename,
- ' '
- .''
- .$defaultinfo.'
',
- $this->description);
+ ' '
+ .'
',
+ $this->description, true, '', $defaultinfo, $query);
}
}
@@ -2022,7 +1999,7 @@ class admin_setting_configmulticheckbox extends admin_setting {
return $this->config_write($this->name, implode(',', $result)) ? '' : get_string('errorsetting', 'admin');
}
- function output_html($data) {
+ function output_html($data, $query='') {
if (!$this->load_choices() or empty($this->choices)) {
return '';
}
@@ -2051,13 +2028,15 @@ class admin_setting_configmulticheckbox extends admin_setting {
}
$options[] = ''
- .'';
+ .'';
}
- if (!empty($defaults)) {
- $defaultinfo = ''.get_string('defaultsettinginfo', 'admin', implode(', ', $defaults)).'
';
+ if (is_null($default)) {
+ $defaultinfo = NULL;
+ } else if (!empty($defaults)) {
+ $defaultinfo = implode(', ', $defaults);
} else {
- $defaultinfo = '';
+ $defaultinfo = get_string('none');
}
$return = '';
@@ -2069,9 +2048,10 @@ class admin_setting_configmulticheckbox extends admin_setting {
}
$return .= '';
}
- $return .= $defaultinfo.'
';
+ $return .= '';
- return format_admin_setting($this, $this->visiblename, $return, $this->description, false);
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, false, '', $defaultinfo, $query);
+
}
}
@@ -2185,16 +2165,16 @@ class admin_setting_configselect extends admin_setting {
return ($this->config_write($this->name, $data) ? '' : get_string('errorsetting', 'admin'));
}
- function output_html($data) {
+ function output_html($data, $query='') {
if (!$this->load_choices() or empty($this->choices)) {
return '';
}
$default = $this->get_defaultsetting();
if (!is_null($default) and array_key_exists($default, $this->choices)) {
- $defaultinfo = ''.get_string('defaultsettinginfo', 'admin', s($this->choices[$default])).'';
+ $defaultinfo = $this->choices[$default];
} else {
- $defaultinfo = '';
+ $defaultinfo = NULL;
}
$current = $this->get_setting();
@@ -2210,14 +2190,14 @@ class admin_setting_configselect extends admin_setting {
}
}
- $return = '';
- return format_admin_setting($this, $this->visiblename, $return, $this->description, true, $warning);
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, true, $warning, $defaultinfo, $query);
}
}
@@ -2292,7 +2272,7 @@ class admin_setting_configmultiselect extends admin_setting_configselect {
return false;
}
- function output_html($data) {
+ function output_html($data, $query='') {
if (!$this->load_choices() or empty($this->choices)) {
return '';
}
@@ -2321,14 +2301,16 @@ class admin_setting_configmultiselect extends admin_setting_configselect {
$return .= '';
}
- if (!empty($defaults)) {
- $defaultinfo = ''.get_string('defaultsettinginfo', 'admin', implode(', ', $defaults)).'
';
+ if (is_null($default)) {
+ $defaultinfo = NULL;
+ } if (!empty($defaults)) {
+ $defaultinfo = implode(', ', $defaults);
} else {
- $defaultinfo = '';
+ $defaultinfo = get_string('none');
}
- $return .= ''.$defaultinfo.'';
- return format_admin_setting($this, $this->visiblename, $return, $this->description);
+ $return .= '';
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, true, '', $defaultinfo, $query);
}
}
@@ -2372,16 +2354,16 @@ class admin_setting_configtime extends admin_setting {
return ($result ? '' : get_string('errorsetting', 'admin'));
}
- function output_html($data) {
+ function output_html($data, $query='') {
$default = $this->get_defaultsetting();
if (is_array($default)) {
- $defaultinfo = ''.get_string('defaultsettinginfo', 'admin', $default['h'].':'.$default['m']).'';
+ $defaultinfo = $default['h'].':'.$default['m'];
} else {
- $defaultinfo = '';
+ $defaultinfo = NULL;
}
- $return = '';
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, false, '', $defaultinfo, $query);
}
}
@@ -2509,7 +2491,7 @@ class admin_setting_courselist_frontpage extends admin_setting {
return ($this->config_write($this->name, implode(',', $save)) ? '' : get_string('errorsetting', 'admin'));
}
- function output_html($data) {
+ function output_html($data, $query='') {
$this->load_choices();
$currentsetting = array();
foreach ($data as $key) {
@@ -2534,7 +2516,7 @@ class admin_setting_courselist_frontpage extends admin_setting {
}
$return .= '';
- return format_admin_setting($this, $this->visiblename, $return, $this->description, false);
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, false, '', NULL, $query);
}
}
@@ -2614,13 +2596,13 @@ class admin_setting_special_frontpagedesc extends admin_setting {
return(update_record('course', $record) ? '' : get_string('errorsetting', 'admin'));
}
- function output_html($data) {
+ function output_html($data, $query='') {
global $CFG;
$CFG->adminusehtmleditor = can_use_html_editor();
$return = ''.print_textarea($CFG->adminusehtmleditor, 15, 60, 0, 0, $this->get_full_name(), $data, 0, true).'
';
- return format_admin_setting($this, $this->visiblename, $return, $this->description, false);
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, false, '', NULL, $query);
}
}
@@ -2699,7 +2681,7 @@ class admin_setting_special_editorfontlist extends admin_setting {
return ($this->config_write($this->name, implode(';', $result)) ? '' : get_string('errorsetting', 'admin'));
}
- function output_html($data) {
+ function output_html($data, $query='') {
$fullname = $this->get_full_name();
$return = '';
for ($i = 0; $i < count($data) / 2; $i++) {
@@ -2715,7 +2697,7 @@ class admin_setting_special_editorfontlist extends admin_setting {
$return .= '';
$return .= '
';
- return format_admin_setting($this, $this->visiblename, $return, $this->description, false);
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, false, '', NULL, $query);
}
}
@@ -2833,7 +2815,7 @@ class admin_setting_emoticons extends admin_setting {
return ($this->config_write($this->name, implode('{;}', $result)) ? '' : get_string('errorsetting', 'admin').$this->visiblename.'
');
}
- function output_html($data) {
+ function output_html($data, $query='') {
$fullname = $this->get_full_name();
$return = '';
for ($i = 0; $i < count($data) / 2; $i++) {
@@ -2849,7 +2831,7 @@ class admin_setting_emoticons extends admin_setting {
$return .= '';
$return .= '
';
- return format_admin_setting($this, $this->visiblename, $return, $this->description, false);
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, false, '', NULL, $query);
}
}
@@ -2997,7 +2979,7 @@ class admin_setting_special_editorhidebuttons extends admin_setting {
return ($this->config_write($this->name, implode(' ', $result)) ? '' : get_string('errorsetting', 'admin'));
}
- function output_html($data) {
+ function output_html($data, $query='') {
global $CFG;
@@ -3027,7 +3009,7 @@ class admin_setting_special_editorhidebuttons extends admin_setting {
$return .= '';
$return .= '';
- return format_admin_setting($this, $this->visiblename, $return, $this->description, false);
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, false, '', NULL, $query);
}
}
@@ -3144,7 +3126,7 @@ class admin_setting_special_calendar_weekend extends admin_setting {
return ($this->config_write($this->name, $result) ? '' : get_string('errorsetting', 'admin'));
}
- function output_html($data) {
+ function output_html($data, $query='') {
// The order matters very much because of the implied numeric keys
$days = array('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday');
$return = '';
@@ -3158,7 +3140,7 @@ class admin_setting_special_calendar_weekend extends admin_setting {
}
$return .= '
';
- return format_admin_setting($this, $this->visiblename, $return, $this->description, false);
+ return format_admin_setting($this, $this->visiblename, $return, $this->description, false, '', NULL, $query);
}
}
@@ -3330,7 +3312,7 @@ class admin_setting_gradecat_combo extends admin_setting {
}
}
- function output_html($data) {
+ function output_html($data, $query='') {
$value = $data['value'];
$forced = !empty($data['forced']);
$adv = !empty($data['adv']);
@@ -3341,12 +3323,12 @@ class admin_setting_gradecat_combo extends admin_setting {
$return .= '';
}
$return .= '';
- $return .= ''
- .''
- .'