|
@@ -1770,7 +1770,16 @@ class UserManager
|
|
$fields = array();
|
|
$fields = array();
|
|
$t_uf = Database :: get_main_table(TABLE_MAIN_USER_FIELD);
|
|
$t_uf = Database :: get_main_table(TABLE_MAIN_USER_FIELD);
|
|
$t_ufo = Database :: get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS);
|
|
$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);
|
|
$column = intval($column);
|
|
$sort_direction = '';
|
|
$sort_direction = '';
|
|
if (in_array(strtoupper($direction), array('ASC', 'DESC'))) {
|
|
if (in_array(strtoupper($direction), array('ASC', 'DESC'))) {
|
|
@@ -1809,7 +1818,9 @@ class UserManager
|
|
10 => '<a name="'.$rowf['id'].'"></a>',
|
|
10 => '<a name="'.$rowf['id'].'"></a>',
|
|
);
|
|
);
|
|
|
|
|
|
- $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);
|
|
$reso = Database::query($sqlo);
|
|
if (Database::num_rows($reso) > 0) {
|
|
if (Database::num_rows($reso) > 0) {
|
|
while ($rowo = Database::fetch_array($reso)) {
|
|
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
|
|
* @return array
|
|
*/
|
|
*/
|
|
public static function get_extra_filtrable_fields()
|
|
public static function get_extra_filtrable_fields()
|
|
{
|
|
{
|
|
$extraFieldList = UserManager::get_extra_fields();
|
|
$extraFieldList = UserManager::get_extra_fields();
|
|
|
|
+
|
|
$extraFiltrableFields = array();
|
|
$extraFiltrableFields = array();
|
|
if (is_array($extraFieldList)) {
|
|
if (is_array($extraFieldList)) {
|
|
foreach ($extraFieldList as $extraField) {
|
|
foreach ($extraFieldList as $extraField) {
|
|
- //if is enabled to filter and is a "<select>" field type
|
|
|
|
|
|
+ // If is enabled to filter and is a "<select>" field type
|
|
if ($extraField[8] == 1 && $extraField[2] == 4) {
|
|
if ($extraField[8] == 1 && $extraField[2] == 4) {
|
|
$extraFiltrableFields[] = array(
|
|
$extraFiltrableFields[] = array(
|
|
'name' => $extraField[3],
|
|
'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;
|
|
return $extraFiltrableFields;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -3811,7 +3823,10 @@ class UserManager
|
|
if (UserManager::is_extra_field_available($extraField['variable'])) {
|
|
if (UserManager::is_extra_field_available($extraField['variable'])) {
|
|
if (isset($_GET[$varName]) && $_GET[$varName]!='0') {
|
|
if (isset($_GET[$varName]) && $_GET[$varName]!='0') {
|
|
$useExtraFields = true;
|
|
$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)
|
|
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 .= '<label class="extra_field">'.$extraField['name'].'</label>';
|
|
|
|
|
|
+ $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'];
|
|
$varName = 'field_'.$extraField['variable'];
|
|
- $extraFields .= ' <select name="'.$varName.'" class="extra_field">';
|
|
|
|
- $extraFields .= '<option value="0">--'.get_lang('Select').'--</option>';
|
|
|
|
|
|
+
|
|
|
|
+ $options = [
|
|
|
|
+ 0 => get_lang('Select')
|
|
|
|
+ ];
|
|
foreach ($extraField['data'] as $option) {
|
|
foreach ($extraField['data'] as $option) {
|
|
- $checked='';
|
|
|
|
|
|
+ $checked = '';
|
|
if (isset($_GET[$varName])) {
|
|
if (isset($_GET[$varName])) {
|
|
- if ($_GET[$varName]==$option[1]) {
|
|
|
|
- $checked = 'selected="true"';
|
|
|
|
|
|
+ if ($_GET[$varName] == $option[1]) {
|
|
|
|
+ $defaults[$option[1]] = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- $extraFields .= '<option value="'.$option[1].'" '.$checked.'>'.$option[1].'</option>';
|
|
|
|
|
|
+
|
|
|
|
+ $options[$option[1]] = $option[1];
|
|
}
|
|
}
|
|
- $extraFields .= '</select>';
|
|
|
|
- $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 = '<script>
|
|
|
|
+ extra_field_toogle();
|
|
|
|
+ function extra_field_toogle() {
|
|
|
|
+ if (jQuery("select[name=search_type]").val() != "1") { jQuery(".extra_field").hide(); } else { jQuery(".extra_field").show(); }
|
|
|
|
+ }
|
|
|
|
+ </script>';
|
|
|
|
+
|
|
|
|
+ return $js.$form->returnForm();
|
|
|
|
|
|
return '
|
|
return '
|
|
<form method="GET" class="form-search" action="'.api_get_path(WEB_PATH).'main/social/search.php">
|
|
<form method="GET" class="form-search" action="'.api_get_path(WEB_PATH).'main/social/search.php">
|
|
<input placeholder="'.get_lang('UsersGroups').'" type="text" value="'.api_htmlentities(Security::remove_XSS($query)).'" name="q"/>
|
|
<input placeholder="'.get_lang('UsersGroups').'" type="text" value="'.api_htmlentities(Security::remove_XSS($query)).'" name="q"/>
|
|
' . get_lang('Type') .'
|
|
' . get_lang('Type') .'
|
|
- <select name="search_type" onchange="javascript: extra_field_toogle();">
|
|
|
|
|
|
+
|
|
<option value="0">--'.get_lang('Select').'--</option>
|
|
<option value="0">--'.get_lang('Select').'--</option>
|
|
<option value="1"' . (($searchType=='1')?'selected="selected"':"") . '>--' . get_lang('User') .'--</option>
|
|
<option value="1"' . (($searchType=='1')?'selected="selected"':"") . '>--' . get_lang('User') .'--</option>
|
|
<option value="2"' . (($searchType=='2')?'selected="selected"':"") . '>--' . get_lang('Group') . '--</option>
|
|
<option value="2"' . (($searchType=='2')?'selected="selected"':"") . '>--' . get_lang('Group') . '--</option>
|
|
@@ -3883,13 +3937,7 @@ class UserManager
|
|
'.$extraFields.'
|
|
'.$extraFields.'
|
|
<button class="btn" type="submit" value="search">'.get_lang('Search').'</button>
|
|
<button class="btn" type="submit" value="search">'.get_lang('Search').'</button>
|
|
</form>
|
|
</form>
|
|
- <script>
|
|
|
|
- extra_field_toogle();
|
|
|
|
- function extra_field_toogle()
|
|
|
|
- {
|
|
|
|
- if (jQuery("select[name=search_type]").val() != "1") { jQuery(".extra_field").hide(); } else { jQuery(".extra_field").show(); }
|
|
|
|
- }
|
|
|
|
- </script>
|
|
|
|
|
|
+
|
|
';
|
|
';
|
|
}
|
|
}
|
|
|
|
|