From 9f4f4a53ded2d67fd9416a8d10137277bcd5fefa Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Wed, 23 Mar 2016 17:20:39 -0500 Subject: [PATCH] Fix E_NOTICEs when search_enabled is true - refs BT#10979 --- main/admin/settings.lib.php | 10 ++++++++-- main/admin/specific_fields.php | 14 +++++++------- main/admin/specific_fields_add.php | 15 +++++++++------ main/document/upload.php | 4 ++-- main/exercice/exercise.class.php | 7 ++++++- main/inc/lib/api.lib.php | 2 +- main/inc/lib/search/search_widget.php | 10 ++++++---- main/newscorm/lp_list_search.php | 25 +++++++++++++++++-------- 8 files changed, 56 insertions(+), 31 deletions(-) diff --git a/main/admin/settings.lib.php b/main/admin/settings.lib.php index 2ccadc835e..3a5a841aa7 100755 --- a/main/admin/settings.lib.php +++ b/main/admin/settings.lib.php @@ -758,7 +758,7 @@ function handle_search() $group = array(); $url = Display::div(Display::url(get_lang('AddSpecificSearchField'), 'specific_fields.php'), array('class'=>'sectioncomment')); if (empty($sf_values)) { - $form->addElement('html', get_lang('SearchPrefilterPrefix').$url); + $form->addElement('label', [get_lang('SearchPrefilterPrefix'), $url]); } else { $form->addElement('select', 'search_prefilter_prefix', array(get_lang('SearchPrefilterPrefix'), $url), $sf_values, ''); $default_values['search_prefilter_prefix'] = api_get_setting('search_prefilter_prefix'); @@ -839,8 +839,14 @@ function handle_search() $list_of_programs = array('pdftotext','ps2pdf', 'catdoc','html2text','unrtf', 'catppt', 'xls2csv'); foreach($list_of_programs as $program) { - $output = $ret_val = null; + $output = []; + $ret_val = null; exec("which $program", $output, $ret_val); + + if (!$output) { + $output[] = ''; + } + $icon = Display::return_icon('bullet_red.png', get_lang('NotInstalled')); if (!empty($output[0])) { $icon = Display::return_icon('bullet_green.png', get_lang('Installed')); diff --git a/main/admin/specific_fields.php b/main/admin/specific_fields.php index b8f0a1096f..d3684df331 100755 --- a/main/admin/specific_fields.php +++ b/main/admin/specific_fields.php @@ -17,7 +17,6 @@ api_protect_admin_script(); // Breadcrumb $interbreadcrumb[] = array ('url' => 'index.php', 'name' => get_lang('PlatformAdmin')); $interbreadcrumb[] = array ('url' => 'settings.php?category=Search', 'name' => get_lang('PlatformConfigSettings')); -$interbreadcrumb[] = array ('url' => 'specific_fields.php', 'name' => get_lang('SpecificSearchFields')); $libpath = api_get_path(LIBRARY_PATH); @@ -30,16 +29,16 @@ $renderer->setCustomElementTemplate('{element} '); $form->addElement('static','search_advanced_link',null,''.Display::return_icon('fieldadd.gif').get_lang('AddSpecificSearchField').''); // Create a sortable table with specific fields data -$column_show = array(1,1,1,1); -$column_order = array(3,2,1,4); +$column_show = array(1,1,1); +$column_order = array(3,2,1); $extra_fields = get_specific_field_list(); $number_of_extra_fields = count($extra_fields); $table = new SortableTableFromArrayConfig($extra_fields,2,50,'',$column_show,$column_order); -$table->set_header(0, '', false,null,'width="2%"', 'style="display:none"'); +$table->set_header(0, ' ', false,null,'width="2%"', 'style="display:none"'); $table->set_header(1, get_lang('Code'), TRUE, 'width="10%"'); $table->set_header(2, get_lang('Name')); -$table->set_header(3, get_lang('Modify'),true,'width="10%"'); +$table->set_header(3, get_lang('Modify'),false,'width="10%"'); $table->set_column_filter(3, 'edit_filter'); function edit_filter($id,$url_params,$row) { @@ -49,15 +48,16 @@ function edit_filter($id,$url_params,$row) { return $return; } -if ($_REQUEST['action'] == 'delete') { +if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete') { delete_specific_field($_REQUEST['field_id']); header('Location: specific_fields.php?message='.get_lang('FieldRemoved')); + exit; } // Start output // Displaying the header -Display::display_header($nameTools); +Display::display_header(get_lang('SpecificSearchFields')); echo Display::display_normal_message(get_lang('SpecificSearchFieldsIntro')); if(!empty($_GET['message'])) { diff --git a/main/admin/specific_fields_add.php b/main/admin/specific_fields_add.php index 232ab2a996..9d394159cb 100755 --- a/main/admin/specific_fields_add.php +++ b/main/admin/specific_fields_add.php @@ -18,18 +18,21 @@ $this_section = SECTION_PLATFORM_ADMIN; // user permissions api_protect_admin_script(); +$fieldId = isset($_REQUEST['field_id']) ? intval($_REQUEST['field_id']) : 0; + $interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin')); $interbreadcrumb[] = array('url' => 'settings.php?category=Search', 'name' => get_lang('PlatformConfigSettings')); $interbreadcrumb[] = array('url' => 'specific_fields.php', 'name' => get_lang('SpecificSearchFields')); -if ($_GET['action']<>'edit') { - $tool_name = get_lang('AddSpecificSearchField'); -} else { + +$tool_name = get_lang('AddSpecificSearchField'); + +if (isset($_GET['action']) && $_GET['action'] === 'edit') { $tool_name = get_lang('EditSpecificSearchField'); } // Create the form $form = new FormValidator('specific_fields_add'); // Field variable name -$form->addElement('hidden','field_id',(int)$_REQUEST['field_id']); +$form->addElement('hidden','field_id', $fieldId); $form->addElement('text','field_name',get_lang('FieldName')); $form->applyFilter('field_name','html_filter'); $form->applyFilter('field_name','trim'); @@ -39,8 +42,8 @@ $form->addRule('field_name', '', 'maxlength',20); // Set default values (only not empty when editing) $defaults = array(); -if (is_numeric($_REQUEST['field_id'])) { - $form_information = get_specific_field_list(array( 'id' => (int)$_GET['field_id'] )); +if ($fieldId) { + $form_information = get_specific_field_list(array( 'id' => $fieldId )); $defaults['field_name'] = $form_information[0]['name']; } $form->setDefaults($defaults); diff --git a/main/document/upload.php b/main/document/upload.php index a2e307fa05..f7fb1b9d01 100755 --- a/main/document/upload.php +++ b/main/document/upload.php @@ -258,11 +258,11 @@ if (api_get_setting('search_enabled') == 'true') { $form->addElement('checkbox', 'index_document', '', get_lang('SearchFeatureDoIndexDocument').'
'.$supported_formats.'
'); $form->addElement('html', '
'); $form->addElement('html', '
'.get_lang('SearchFeatureDocumentLanguage').'
'); - $form->addElement('html', '
' . api_get_languages_combo(null) . '
'); + $form->addLabel(get_lang('Language'), api_get_languages_combo()); $form->addElement('html', '
'); $specific_fields = get_specific_field_list(); foreach ($specific_fields as $specific_field) { - $form->addElement('text', $specific_field['code'], $specific_field['name'].' : '); + $form->addElement('text', $specific_field['code'], $specific_field['name']); } $form->addElement('html', '
'); } diff --git a/main/exercice/exercise.class.php b/main/exercice/exercise.class.php index d67d1d8c23..fa4f949fa2 100755 --- a/main/exercice/exercise.class.php +++ b/main/exercice/exercise.class.php @@ -1315,7 +1315,12 @@ class Exercise foreach ($specific_fields as $specific_field) { $form->addElement ('text', $specific_field['code'], $specific_field['name']); - $filter = array('c_id'=> "'". api_get_course_int_id() ."'", 'field_id' => $specific_field['id'], 'ref_id' => $this->id, 'tool_id' => '\''. TOOL_QUIZ .'\''); + $filter = array( + 'c_id' => api_get_course_int_id(), + 'field_id' => $specific_field['id'], + 'ref_id' => $this->id, + 'tool_id' => "'" . TOOL_QUIZ . "'" + ); $values = get_specific_field_values_list($filter, array('value')); if ( !empty($values) ) { $arr_str_values = array(); diff --git a/main/inc/lib/api.lib.php b/main/inc/lib/api.lib.php index 24a7de5c8b..6479309d9c 100644 --- a/main/inc/lib/api.lib.php +++ b/main/inc/lib/api.lib.php @@ -4179,7 +4179,7 @@ function api_get_languages_combo($name = 'language') $languages = $language_list['name']; $folder = $language_list['folder']; - $ret .= ''; foreach ($languages as $key => $value) { if ($folder[$key] == $default) { $selected = ' selected="selected"'; diff --git a/main/inc/lib/search/search_widget.php b/main/inc/lib/search/search_widget.php index aa49c0f0ec..5d569e0304 100755 --- a/main/inc/lib/search/search_widget.php +++ b/main/inc/lib/search/search_widget.php @@ -67,7 +67,7 @@ function format_specific_fields_selects($sf_terms, $op, $prefilter_prefix='') { // Process each prefix type term $i = 0; $max = count($sf_terms); - $multiple_selects .=''; + $multiple_selects =''; foreach ($sf_terms as $prefix => $sf_term_array) { if ($prefix == $prefilter_prefix) continue; $multiple_select = ''; @@ -91,7 +91,7 @@ function format_specific_fields_selects($sf_terms, $op, $prefilter_prefix='') { // get specific field name $sf_value = get_specific_field_list(array( 'code' => "'$prefix'" )); $sf_value = array_shift($sf_value); - $multiple_select .= '
'; + $multiple_select .= '
'; $multiple_select .= format_one_specific_field_select($prefix, $sf_term_array, $op, 'multiple="multiple" size="7" class="sf-select-multiple"'); $multiple_select .= ''; $multiple_selects .= $multiple_select; @@ -134,8 +134,10 @@ function search_widget_normal_form($action, $show_thesaurus, $sf_terms, $op) { $reset_button = ' '; } + $query = isset($_REQUEST['query']) ? Security::remove_XSS($_REQUEST['query']) : null; + $form = '