Fix search form.

1.10.x
Julio Montoya 11 years ago
parent a8832fb987
commit bfafc94c4e
  1. 104
      main/inc/lib/usermanager.lib.php
  2. 32
      main/social/search.php
  3. 22
      main/template/default/social/search.tpl

@ -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 => '<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);
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 "<select>" field type
// If is enabled to filter and is a "<select>" 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 .= '<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'];
$extraFields .= '&nbsp;<select name="'.$varName.'" class="extra_field">';
$extraFields .= '<option value="0">--'.get_lang('Select').'--</option>';
$options = [
0 => get_lang('Select')
];
foreach ($extraField['data'] as $option) {
$checked='';
$checked = '';
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 .= '&nbsp;&nbsp;';
$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 '
<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"/> &nbsp;
' . get_lang('Type') .'
<select name="search_type" onchange="javascript: extra_field_toogle();">
<option value="0">--'.get_lang('Select').'--</option>
<option value="1"' . (($searchType=='1')?'selected="selected"':"") . '>--' . get_lang('User') .'--</option>
<option value="2"' . (($searchType=='2')?'selected="selected"':"") . '>--' . get_lang('Group') . '--</option>
@ -3883,13 +3937,7 @@ class UserManager
'.$extraFields.'
<button class="btn" type="submit" value="search">'.get_lang('Search').'</button>
</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>
';
}

@ -34,15 +34,18 @@ if (!empty($extra_fields)) {
}
}
}
$user_info = UserManager::get_user_info_by_id($user_id);
$user_info = UserManager::get_user_info_by_id($user_id);
//Block Social Avatar
$social_avatar_block = SocialManager::getSocialUserBlock($user_id, 'search');
//Block Social Menu
$social_menu_block = SocialManager::show_social_menu('search');
$social_right_content = '<div class="span9">'.UserManager::get_search_form($query).'</div>';
$social_right_content = '';
$searchForm = UserManager::get_search_form($query);
$groups = array();
$totalGroups = array();
$users = array();
$totalUsers = array();
// I'm searching something
if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) ) {
@ -54,7 +57,7 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
$from = intval(($page - 1) * $itemPerPage);
// Get users from tags
$users = UserManager::get_all_user_tags($_GET['q'], 0, $from, $itemPerPage);
$users = UserManager::get_all_user_tags($_GET['q'], 0, $from, $itemPerPage);
}
if ($_GET['search_type']=='0' || $_GET['search_type']=='2') {
@ -89,7 +92,7 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
<button class="btn btn-mini"><i class="fa fa-envelope"></i> '.get_lang('SendMessage').'</button></a>';
if (empty($user['picture_uri'])) {
$picture['file'] = api_get_path(WEB_CODE_PATH).'img/unknown.jpg';
$img = '<img src="'.$picture['file'].'">';
$img = '<img src="'.$picture['file'].'">';
} else {
$picture = UserManager::get_picture_user(
$user['user_id'],
@ -110,10 +113,9 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
$user_info['complete_name'] = Display::url($status_icon.$user_info['complete_name'], $url);
$invitations = $user['tag'].$send_inv.$send_msg;
$results .= '<li class="span3">
<div class="">
<div class="row-fluid">
<div class="span12">
$results .= '<li class="col-md-3">
<div class="row">
<div class="col-md-12">
'.$user_info['complete_name'].'
</div>
<div class="col-md-4">
@ -126,7 +128,6 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
'.$invitations.'
</div>
</div>
</div>
</div>
</li>';
}
@ -148,10 +149,9 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
$totalUsers
);
$grid_groups = array();
if (is_array($groups) && count($groups) > 0) {
$social_right_content .= '<div class="span9">';
$social_right_content .= '<div class="col-md-9">';
$social_right_content .= Display::page_subheader(get_lang('Groups'));
$social_right_content .= '<ul class="thumbnails">';
@ -178,14 +178,14 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
$item_1 = Display::tag('h3', $url_open.$name.$url_close).$members;
$social_right_content .= '
<li class="span8">
<div class="row-fluid">
<div class="span1">
<li class="col-md-8">
<div class="row">
<div class="col-md-1">
<div class="media">
'.$item_0.'
</div>
</div>
<div class="span6">
<div class="col-md-6">
'.$item_1.'
<p>'.$group['description'].'</p>
<p>'.$tags.'</p>
@ -213,11 +213,11 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
);
}
$tpl = new Template($tool_name);
$tpl->assign('social_avatar_block', $social_avatar_block);
$tpl->assign('social_menu_block', $social_menu_block);
$tpl->assign('social_right_content', $social_right_content);
$tpl->assign('search_form', $searchForm);
$formModalTpl = new Template();
$formModalTpl->assign('messageForm', MessageManager::generate_message_form('send_message'));

@ -8,26 +8,22 @@
{{ social_menu_block }}
</div>
</div>
<div id="wallMessages" class="col-md-5" style="min-height:1px">
<div class="col-md-9" style="min-height:1px">
<div class="row">
<div class="col-md-12">
<div id="message_ajax_reponse" class=""></div>
</div>
</div>
<div class="row">
{{ social_right_content}}
</div>
<div id="display_response_id" class="col-md-12"></div>
{{ socialAutoExtendLink }}
</div>
<div class="col-md-4">
<div class="row">
{{ socialRightInformation}}
<div class="col-md-12">
{{ search_form }}
</div>
{{ social_right_content }}
</div>
</div>
</div>
{% if formModals is defined %}
{{ formModals }}
{% endif %}
{% endblock %}
{% if formModals is defined %}
{{ formModals }}
{% endif %}
{% endblock %}

Loading…
Cancel
Save