parent
b974e3797f
commit
18afd677b9
@ -1,254 +0,0 @@ |
||||
<?php |
||||
|
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
/** |
||||
* @author Julio Montoya <gugli100@gmail.com> |
||||
*/ |
||||
$cidReset = true; |
||||
|
||||
require_once __DIR__.'/../inc/global.inc.php'; |
||||
$ajax_url = api_get_path(WEB_AJAX_PATH).'message.ajax.php'; |
||||
api_block_anonymous_users(); |
||||
|
||||
if ('true' != api_get_setting('allow_social_tool')) { |
||||
api_not_allowed(); |
||||
} |
||||
|
||||
$this_section = SECTION_SOCIAL; |
||||
$tool_name = get_lang('Search'); |
||||
$interbreadcrumb[] = [ |
||||
'url' => api_get_path(WEB_CODE_PATH).'social/profile.php', |
||||
'name' => get_lang('Social network'), |
||||
]; |
||||
|
||||
$query = isset($_GET['q']) ? Security::remove_XSS($_GET['q']) : null; |
||||
|
||||
$queryNoFilter = isset($_GET['q']) ? $_GET['q'] : null; |
||||
$query_search_type = isset($_GET['search_type']) && in_array($_GET['search_type'], ['0', '1', '2']) ? $_GET['search_type'] : null; |
||||
$extra_fields = UserManager::getExtraFilterableFields(); |
||||
$query_vars = ['q' => $query, 'search_type' => $query_search_type]; |
||||
if (!empty($extra_fields)) { |
||||
foreach ($extra_fields as $extra_field) { |
||||
$field_name = 'field_'.$extra_field['variable']; |
||||
if (isset($_GET[$field_name]) && '0' != $_GET[$field_name]) { |
||||
$query_vars[$field_name] = $_GET[$field_name]; |
||||
} |
||||
} |
||||
} |
||||
|
||||
//Block Social Menu |
||||
$social_menu_block = SocialManager::show_social_menu('search'); |
||||
$block_search = ''; |
||||
$searchForm = UserManager::get_search_form($queryNoFilter); |
||||
|
||||
$groups = []; |
||||
$totalGroups = []; |
||||
$users = []; |
||||
$totalUsers = []; |
||||
$usergroup = new UserGroupModel(); |
||||
|
||||
// I'm searching something |
||||
if ('' != $query || ('1' == $query_vars['search_type'] && count($query_vars) > 2)) { |
||||
$itemPerPage = 6; |
||||
|
||||
if ('0' == $_GET['search_type'] || '1' == $_GET['search_type']) { |
||||
$page = isset($_GET['users_page_nr']) ? intval($_GET['users_page_nr']) : 1; |
||||
$totalUsers = UserManager::get_all_user_tags( |
||||
$_GET['q'], |
||||
0, |
||||
0, |
||||
$itemPerPage, |
||||
true |
||||
); |
||||
|
||||
$from = intval(($page - 1) * $itemPerPage); |
||||
// Get users from tags |
||||
$users = UserManager::get_all_user_tags($_GET['q'], 0, $from, $itemPerPage); |
||||
} |
||||
|
||||
if ('0' == $_GET['search_type'] || '2' == $_GET['search_type']) { |
||||
$pageGroup = isset($_GET['groups_page_nr']) ? intval($_GET['groups_page_nr']) : 1; |
||||
// Groups |
||||
$fromGroups = intval(($pageGroup - 1) * $itemPerPage); |
||||
$totalGroups = count($usergroup->get_all_group_tags($_GET['q'], 0, $itemPerPage, true)); |
||||
|
||||
$groups = $usergroup->get_all_group_tags($_GET['q'], $fromGroups); |
||||
} |
||||
|
||||
if (empty($users) && empty($groups)) { |
||||
Display::addFlash(Display::return_message(get_lang('Sorry no results'))); |
||||
} |
||||
|
||||
$results = '<div id="whoisonline">'; |
||||
if (is_array($users) && count($users) > 0) { |
||||
$buttonClass = 'btn btn-default btn-sm'; |
||||
foreach ($users as $user) { |
||||
$user_info = api_get_user_info($user['id'], true); |
||||
$sendInvitation = '<button class="'.$buttonClass.' disabled "> |
||||
<em class="fa fa-user"></em> '.get_lang('Send invitation').'</button>'; |
||||
$relation_type = SocialManager::get_relation_between_contacts(api_get_user_id(), $user_info['user_id']); |
||||
$url = api_get_path(WEB_PATH).'main/social/profile.php?u='.$user_info['user_id']; |
||||
|
||||
// Show send invitation icon if they are not friends yet |
||||
if (3 != $relation_type && 4 != $relation_type && $user_info['user_id'] != api_get_user_id()) { |
||||
$sendInvitation = '<a href="#" class="'.$buttonClass.' btn-to-send-invitation" data-send-to="'.$user_info['user_id'].'"> |
||||
<em class="fa fa-user"></em> '.get_lang('Send invitation').'</a>'; |
||||
} |
||||
|
||||
$sendMessageUrl = api_get_path(WEB_AJAX_PATH).'user_manager.ajax.php?'.http_build_query([ |
||||
'a' => 'get_user_popup', |
||||
'user_id' => $user_info['user_id'], |
||||
]); |
||||
|
||||
$sendMessage = Display::toolbarButton( |
||||
get_lang('Send message'), |
||||
$sendMessageUrl, |
||||
'envelope', |
||||
'default', |
||||
[ |
||||
'class' => 'ajax btn-sm', |
||||
'data-title' => get_lang('Send message'), |
||||
] |
||||
); |
||||
|
||||
if (!empty($user_info['user_is_online'])) { |
||||
$status_icon = Display::return_icon('online.png', get_lang('Online'), null, ICON_SIZE_TINY); |
||||
} else { |
||||
$status_icon = Display::return_icon('offline.png', get_lang('Disconnected'), null, ICON_SIZE_TINY); |
||||
} |
||||
|
||||
if (5 == $user_info['status']) { |
||||
$user_icon = Display::return_icon('user.png', get_lang('Learner'), null, ICON_SIZE_TINY); |
||||
} else { |
||||
$user_icon = Display::return_icon('teacher.png', get_lang('Trainer'), null, ICON_SIZE_TINY); |
||||
} |
||||
|
||||
$user_info['complete_name'] = Display::url($user_info['complete_name'], $url); |
||||
$invitations = $sendInvitation.$sendMessage; |
||||
|
||||
$results .= Display::getUserCard( |
||||
$user_info, |
||||
$status_icon.$user_icon, |
||||
$invitations |
||||
); |
||||
} |
||||
} |
||||
$results .= '</div>'; |
||||
|
||||
$visibility = [true, true, true, true, true]; |
||||
|
||||
if (!empty($users)) { |
||||
$results .= Display::return_sortable_grid( |
||||
'users', |
||||
null, |
||||
null, |
||||
['hide_navigation' => false, 'per_page' => $itemPerPage], |
||||
$query_vars, |
||||
false, |
||||
$visibility, |
||||
true, |
||||
[], |
||||
$totalUsers |
||||
); |
||||
$block_search .= Display::panelCollapse( |
||||
get_lang('Users'), |
||||
$results, |
||||
'search-friends', |
||||
null, |
||||
'friends-accordion', |
||||
'friends-collapse' |
||||
); |
||||
} |
||||
|
||||
$grid_groups = []; |
||||
$block_groups = '<div id="whoisonline">'; |
||||
if (is_array($groups) && count($groups) > 0) { |
||||
$block_groups .= '<div class="row">'; |
||||
foreach ($groups as $group) { |
||||
$group['name'] = Security::remove_XSS($group['name'], STUDENT, true); |
||||
$group['description'] = Security::remove_XSS($group['description'], STUDENT, true); |
||||
$id = $group['id']; |
||||
$url_open = '<a href="group_view.php?id='.$id.'">'; |
||||
$url_close = '</a>'; |
||||
$name = cut($group['name'], 60, true); |
||||
$count_users_group = count($usergroup->get_all_users_by_group($id)); |
||||
if (1 == $count_users_group) { |
||||
$count_users_group = $count_users_group; |
||||
} else { |
||||
$count_users_group = $count_users_group; |
||||
} |
||||
$picture = $usergroup->get_picture_group( |
||||
$group['id'], |
||||
$group['picture'], |
||||
GROUP_IMAGE_SIZE_ORIGINAL |
||||
); |
||||
|
||||
$tags = null; |
||||
$group['picture'] = '<img class="img-responsive img-circle" src="'.$picture['file'].'" />'; |
||||
|
||||
$members = Display::returnFontAwesomeIcon('user').'( '.$count_users_group.' )'; |
||||
$item_1 = Display::tag('p', $url_open.$name.$url_close); |
||||
|
||||
$block_groups .= ' |
||||
<div class="col-md-4"> |
||||
<div class="items-user"> |
||||
<div class="items-user-avatar"> |
||||
'.$group['picture'].' |
||||
</div> |
||||
<div class="user-info"> |
||||
'.$item_1.' |
||||
<p>'.$members.'</p> |
||||
<p>'.$group['description'].'</p> |
||||
<p>'.$tags.'</p> |
||||
<p>'.$url_open.get_lang('See more').$url_close.'</p> |
||||
</div> |
||||
</div> |
||||
</div>'; |
||||
} |
||||
$block_groups .= '</div>'; |
||||
} |
||||
$block_groups .= '</div>'; |
||||
|
||||
$visibility = [true, true, true, true, true]; |
||||
|
||||
if (!empty($groups)) { |
||||
$block_groups .= Display::return_sortable_grid( |
||||
'groups', |
||||
null, |
||||
$grid_groups, |
||||
['hide_navigation' => false, 'per_page' => $itemPerPage], |
||||
$query_vars, |
||||
false, |
||||
$visibility, |
||||
true, |
||||
[], |
||||
$totalGroups |
||||
); |
||||
$block_search .= Display:: panelCollapse( |
||||
get_lang('Groups'), |
||||
$block_groups, |
||||
'search-groups', |
||||
null, |
||||
'groups-accordion', |
||||
'groups-collapse' |
||||
); |
||||
} |
||||
} |
||||
|
||||
$tpl = new Template($tool_name); |
||||
// Block Social Avatar |
||||
SocialManager::setSocialUserBlock($tpl, api_get_user_id(), 'search'); |
||||
$tpl->assign('social_menu_block', $social_menu_block); |
||||
$tpl->assign('social_search', $block_search); |
||||
$tpl->assign('search_form', $searchForm); |
||||
|
||||
$formModalTpl = new Template(); |
||||
$formModalTpl->assign('invitation_form', MessageManager::generate_invitation_form()); |
||||
$template = $formModalTpl->get_template('social/form_modals.tpl'); |
||||
$formModals = $formModalTpl->fetch($template); |
||||
|
||||
$tpl->assign('form_modals', $formModals); |
||||
|
||||
$social_layout = $tpl->get_template('social/search.tpl'); |
||||
$tpl->display($social_layout); |
||||
Loading…
Reference in new issue