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