From 587c7040f57283a0cf2e8df0b84075658712e35e Mon Sep 17 00:00:00 2001 From: skodak Date: Tue, 1 Jan 2008 15:51:54 +0000 Subject: [PATCH] MDL-12790 highlighting in admin search results breaks html MDL-12791 add defaults parameter to format_admin_setting() MDL-12792 search in admin settings and defaults + minor speedup of fast highlighting and fixed empty span tags merged from MOODLE_19_STABLE --- lib/adminlib.php | 242 +++++++++++++++---------------- lib/weblib.php | 13 +- theme/standard/styles_color.css | 2 +- theme/standard/styles_fonts.css | 2 +- theme/standard/styles_layout.css | 17 ++- 5 files changed, 143 insertions(+), 133 deletions(-) diff --git a/lib/adminlib.php b/lib/adminlib.php index e7ec76b009..a36a4f3663 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 = '
'; foreach ($this->choices as $key => $value) { // the string cast is needed because key may be integer - 0 is equal to most strings! $return .= ''; } - $return .= ''.$defaultinfo.'
'; + $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 = '
'. ''.$defaultinfo.'
'; - return format_admin_setting($this, $this->visiblename, $return, $this->description, false); + $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 .= '' - .'' - .'