diff --git a/main/inc/lib/usermanager.lib.php b/main/inc/lib/usermanager.lib.php index ad24822037..1e7b129af4 100755 --- a/main/inc/lib/usermanager.lib.php +++ b/main/inc/lib/usermanager.lib.php @@ -1770,7 +1770,16 @@ class UserManager $fields = array(); $t_uf = Database :: get_main_table(TABLE_MAIN_USER_FIELD); $t_ufo = Database :: get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS); - $columns = array('id', 'field_variable', 'field_type', 'field_display_text', 'field_default_value', 'field_order', 'field_filter', 'tms'); + $columns = array( + 'id', + 'field_variable', + 'field_type', + 'field_display_text', + 'field_default_value', + 'field_order', + 'field_filter', + 'tms' + ); $column = intval($column); $sort_direction = ''; if (in_array(strtoupper($direction), array('ASC', 'DESC'))) { @@ -1809,7 +1818,9 @@ class UserManager 10 => '', ); - $sqlo = "SELECT * FROM $t_ufo WHERE field_id = ".$rowf['id']." ORDER BY option_order ASC"; + $sqlo = "SELECT * FROM $t_ufo + WHERE field_id = ".$rowf['id']." + ORDER BY option_order ASC"; $reso = Database::query($sqlo); if (Database::num_rows($reso) > 0) { while ($rowo = Database::fetch_array($reso)) { @@ -3771,16 +3782,17 @@ class UserManager } /** - * Get extra filtrable user fields (type select) + * Get extra filtrable user fields (only type select) * @return array */ public static function get_extra_filtrable_fields() { $extraFieldList = UserManager::get_extra_fields(); + $extraFiltrableFields = array(); if (is_array($extraFieldList)) { foreach ($extraFieldList as $extraField) { - //if is enabled to filter and is a "" field type if ($extraField[8] == 1 && $extraField[2] == 4) { $extraFiltrableFields[] = array( 'name' => $extraField[3], @@ -3791,7 +3803,7 @@ class UserManager } } - if (is_array($extraFiltrableFields) && count($extraFiltrableFields) > 0 ) { + if (is_array($extraFiltrableFields) && count($extraFiltrableFields) > 0) { return $extraFiltrableFields; } } @@ -3811,7 +3823,10 @@ class UserManager if (UserManager::is_extra_field_available($extraField['variable'])) { if (isset($_GET[$varName]) && $_GET[$varName]!='0') { $useExtraFields = true; - $extraFieldResult[]= UserManager::get_extra_user_data_by_value($extraField['variable'], $_GET[$varName]); + $extraFieldResult[]= UserManager::get_extra_user_data_by_value( + $extraField['variable'], + $_GET[$varName] + ); } } } @@ -3847,35 +3862,74 @@ class UserManager */ public static function get_search_form($query) { - $extraFiltrableFields = UserManager::get_extra_filtrable_fields(); - $extraFields = null; - if (is_array($extraFiltrableFields) && count($extraFiltrableFields)>0 ) { - foreach ($extraFiltrableFields as $extraField) { - $extraFields .= ''; + $searchType = isset($_GET['search_type']) ? $_GET['search_type'] : null; + $form = new FormValidator( + 'search_user', + 'get', + api_get_path(WEB_PATH).'main/social/search.php', + '', + array(), + FormValidator::LAYOUT_INLINE + ); + + $form->addText('q', get_lang('UsersGroups')); + $options = array( + 0 => get_lang('Select'), + 1 => get_lang('User'), + 2 => get_lang('Group'), + ); + $form->addSelect( + 'search_type', + get_lang('Type'), + $options, + array('onchange' => 'javascript: extra_field_toogle();') + ); + + // Extra fields + + $extraFields = UserManager::get_extra_filtrable_fields(); + $defaults = []; + if (is_array($extraFields) && count($extraFields) > 0) { + foreach ($extraFields as $extraField) { $varName = 'field_'.$extraField['variable']; - $extraFields .= ' '; - $extraFields .= '  '; + $form->addSelect($varName, $extraField['name'], $options); } } - $searchType = isset($_GET['search_type']) ? $_GET['search_type'] : null; + $defaults['search_type'] = intval($searchType); + $defaults['q'] = api_htmlentities(Security::remove_XSS($query)); + $form->setDefaults($defaults); + + $form->addButtonSearch(get_lang('Search')); + + $js = ''; + + return $js.$form->returnForm(); return '