Centralize function to render a user card in social network

See #1617
pull/2487/head
jmontoyaa 9 years ago
parent 62830ecaca
commit 8a49b1259b
  1. 38
      main/inc/lib/display.lib.php
  2. 1
      main/inc/lib/social.lib.php
  3. 27
      main/social/friends.php
  4. 54
      main/social/groups.php
  5. 46
      main/social/search.php

@ -2540,4 +2540,42 @@ HTML;
api_get_local_time($dateTime) api_get_local_time($dateTime)
); );
} }
/**
* @param $userInfo
* @param string $status
* @param string $toolbar
* @return string
*/
public static function getUserCard($userInfo, $status= '', $toolbar = '')
{
if (!empty($status)) {
$status = '<div class="items-user-status">'.$status.'</div>';
}
if (!empty($toolbar)) {
$toolbar = '<div class="btn-group pull-right">'.$toolbar.'</div>';
}
return '<div class="col-md-12">
<div class="row">
<div class="col-md-2">
<img src="'.$userInfo['avatar'].'" class="img-responsive img-circle">
</div>
<div class="col-md-10">
<p>'.$userInfo['complete_name'].'</p>
<div class="row">
<div class="col-md-2">
'.$status.'
</div>
<div class="col-md-10">
'.$toolbar.'
</div>
</div>
</div>
</div>
<hr />
</div>';
}
} }

@ -137,6 +137,7 @@ class SocialManager extends UserManager
'lastName' => $my_user_info['lastName'], 'lastName' => $my_user_info['lastName'],
'username' => $my_user_info['username'], 'username' => $my_user_info['username'],
'image' => $my_user_info['avatar'], 'image' => $my_user_info['avatar'],
'user_info' => $my_user_info,
); );
} else { } else {
$list_ids_friends[] = $row; $list_ids_friends[] = $row;

@ -117,8 +117,8 @@ if (count($friends) == 0) {
$social_right_content .= $filterForm->returnForm(); $social_right_content .= $filterForm->returnForm();
$friend_html = '<div id="friends" class="row">'; $friend_html = '<div id="whoisonline">';
$friend_html .= '<div class="row">';
$number_friends = count($friends); $number_friends = count($friends);
$j = 0; $j = 0;
@ -126,31 +126,16 @@ if (count($friends) == 0) {
while ($j < $number_friends) { while ($j < $number_friends) {
if (isset($friends[$j])) { if (isset($friends[$j])) {
$friend = $friends[$j]; $friend = $friends[$j];
$user_name = api_xml_http_response_encode($friend['firstName'].' '.$friend['lastName']); $toolBar = '<button class="btn btn-danger" onclick="delete_friend(this)" id=img_' . $friend['friend_user_id'] . '>
$userPicture = UserManager::getUserPicture($friend['friend_user_id']);
$friend_html .= '
<div class="col-md-3">
<div class="thumbnail text-center" id="div_' . $friends[$j]['friend_user_id'] . '">
<img src="' . $userPicture . '" class="img-responsive" id="imgfriend_' . $friend['friend_user_id'] . '" title="'.$user_name.'">
<div class="caption">
<h3>
<a href="profile.php?u=' . $friend['friend_user_id'] . '">' . $user_name . '</a>
</h3>
<p>
<button class="btn btn-danger" onclick="delete_friend(this)" id=img_' . $friend['friend_user_id'] . '>
' . get_lang('Delete') . ' ' . get_lang('Delete') . '
</button> </button>';
</p> $friend_html .= Display::getUserCard($friend['user_info'], '', $toolBar);
</div>
</div>
</div>
';
} }
$j++; $j++;
} }
} }
$friend_html .= '</div>'; $friend_html .= '</div>';
$friend_html .= '</div>';
$social_right_content .= $friend_html; $social_right_content .= $friend_html;
} }
$social_right_content .= '</div>'; $social_right_content .= '</div>';

@ -73,14 +73,30 @@ if (is_array($results) && count($results) > 0) {
} }
$url = '<a href="group_view.php?id='.$id.'">' . $name . '</a>'; $url = '<a href="group_view.php?id='.$id.'">' . $name . '</a>';
$count_users_group = count($usergroup->get_users_by_group($id, false, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_READER, GROUP_USER_PERMISSION_MODERATOR), 0 , 1000)); $count_users_group = count(
$usergroup->get_users_by_group(
$id,
false,
array(
GROUP_USER_PERMISSION_ADMIN,
GROUP_USER_PERMISSION_READER,
GROUP_USER_PERMISSION_MODERATOR,
),
0,
1000
)
);
if ($count_users_group == 1) { if ($count_users_group == 1) {
$count_users_group = $count_users_group.' '.get_lang('Member'); $count_users_group = $count_users_group.' '.get_lang('Member');
} else { } else {
$count_users_group = $count_users_group.' '.get_lang('Members'); $count_users_group = $count_users_group.' '.get_lang('Members');
} }
$picture = $usergroup->get_picture_group($result['id'], $result['picture'],80); $picture = $usergroup->get_picture_group(
$result['id'],
$result['picture'],
80
);
$result['picture'] = '<img class="social-groups-image" src="'.$picture['file'].'" />'; $result['picture'] = '<img class="social-groups-image" src="'.$picture['file'].'" />';
$members = Display::returnFontAwesomeIcon('user').$count_users_group; $members = Display::returnFontAwesomeIcon('user').$count_users_group;
@ -146,16 +162,13 @@ foreach ($results as $result) {
//Avoiding my groups //Avoiding my groups
if (!in_array($id,$my_group_list)) { if (!in_array($id,$my_group_list)) {
$html .= '<a class="btn" href="group_view.php?id='.$id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a> '; $html .= '<a class="btn btn-primary" href="group_view.php?id='.$id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a> ';
} }
$html .= '<div class="group-actions" >'.$join_url.'</div>'; $html .= '<div class="group-actions" >'.$join_url.'</div>';
$html .= '</div>'; $html .= '</div>';
$html .= '</div>'; $html .= '</div>';
$grid_item_2 = $html; $grid_item_2 = $html;
$grid_newest_groups[] = array($grid_item_2); $grid_newest_groups[] = array($grid_item_2);
} }
@ -170,7 +183,19 @@ if (is_array($results) && count($results) > 0) {
$id = $result['id']; $id = $result['id'];
$name = cut($result['name'], GROUP_TITLE_LENGTH, true); $name = cut($result['name'], GROUP_TITLE_LENGTH, true);
$count_users_group = count($usergroup->get_users_by_group($id, false, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_READER, GROUP_USER_PERMISSION_MODERATOR), 0 , 1000)); $count_users_group = count(
$usergroup->get_users_by_group(
$id,
false,
array(
GROUP_USER_PERMISSION_ADMIN,
GROUP_USER_PERMISSION_READER,
GROUP_USER_PERMISSION_MODERATOR,
),
0,
1000
)
);
if ($count_users_group == 1) { if ($count_users_group == 1) {
$count_users_group = $count_users_group.' '.get_lang('Member'); $count_users_group = $count_users_group.' '.get_lang('Member');
} else { } else {
@ -197,9 +222,8 @@ if (is_array($results) && count($results) > 0) {
$html .= ''; $html .= '';
} }
//Avoiding my groups //Avoiding my groups
if (!in_array($id,$my_group_list)) { if (!in_array($id,$my_group_list)) {
$html .= '<a class="btn" href="group_view.php?id='.$id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a> '; $html .= '<a class="btn btn-primary" href="group_view.php?id='.$id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a> ';
} }
$html .= '<div class="group-actions" >'.$join_url.'</div>'; $html .= '<div class="group-actions" >'.$join_url.'</div>';
@ -213,15 +237,21 @@ if (is_array($results) && count($results) > 0) {
// Display groups (newest, mygroups, pop) // Display groups (newest, mygroups, pop)
$query_vars = array(); $query_vars = array();
$newest_content = $popular_content = $my_group_content = null; $newest_content = $popular_content = $my_group_content = null;
if (isset($_GET['view']) && in_array($_GET['view'], $allowed_views)) { if (isset($_GET['view']) && in_array($_GET['view'], $allowed_views)) {
$view_group = $_GET['view']; $view_group = $_GET['view'];
switch ($view_group) { switch ($view_group) {
case 'mygroups': case 'mygroups':
if (count($grid_my_groups) > 0) { if (count($grid_my_groups) > 0) {
$my_group_content = Display::return_sortable_grid('mygroups', array(), $grid_my_groups, array('hide_navigation'=>true, 'per_page' => 2), $query_vars, false, array(true, true, true,false)); $my_group_content = Display::return_sortable_grid(
'mygroups',
array(),
$grid_my_groups,
array('hide_navigation' => true, 'per_page' => 2),
$query_vars,
false,
array(true, true, true, false)
);
} }
if (api_get_setting('allow_students_to_create_groups_in_social') == 'true') { if (api_get_setting('allow_students_to_create_groups_in_social') == 'true') {
$create_group_item = '<a class="btn btn-default" href="'.api_get_path(WEB_PATH).'main/social/group_add.php">'. $create_group_item = '<a class="btn btn-default" href="'.api_get_path(WEB_PATH).'main/social/group_add.php">'.

@ -17,7 +17,10 @@ if (api_get_setting('allow_social_tool') != 'true') {
$this_section = SECTION_SOCIAL; $this_section = SECTION_SOCIAL;
$tool_name = get_lang('Search'); $tool_name = get_lang('Search');
$interbreadcrumb[] = array('url' => 'profile.php', 'name' => get_lang('SocialNetwork')); $interbreadcrumb[] = array(
'url' => api_get_path(WEB_CODE_PATH).'social/profile.php',
'name' => get_lang('SocialNetwork'),
);
$query = isset($_GET['q']) ? Security::remove_XSS($_GET['q']): null; $query = isset($_GET['q']) ? Security::remove_XSS($_GET['q']): null;
$query_search_type = isset($_GET['search_type']) && in_array($_GET['search_type'], array('0','1','2')) ? $_GET['search_type'] : null; $query_search_type = isset($_GET['search_type']) && in_array($_GET['search_type'], array('0','1','2')) ? $_GET['search_type'] : null;
@ -41,16 +44,21 @@ $groups = array();
$totalGroups = array(); $totalGroups = array();
$users = array(); $users = array();
$totalUsers = array(); $totalUsers = array();
$usergroup = new UserGroup(); $usergroup = new UserGroup();
// I'm searching something // I'm searching something
if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2)) { if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2)) {
$itemPerPage = 8; $itemPerPage = 6;
if ($_GET['search_type']=='0' || $_GET['search_type']=='1') { if ($_GET['search_type']=='0' || $_GET['search_type']=='1') {
$page = isset($_GET['users_page_nr']) ? intval($_GET['users_page_nr']) : 1; $page = isset($_GET['users_page_nr']) ? intval($_GET['users_page_nr']) : 1;
$totalUsers = UserManager::get_all_user_tags($_GET['q'], 0, 0, $itemPerPage, true); $totalUsers = UserManager::get_all_user_tags(
$_GET['q'],
0,
0,
$itemPerPage,
true
);
$from = intval(($page - 1) * $itemPerPage); $from = intval(($page - 1) * $itemPerPage);
// Get users from tags // Get users from tags
@ -72,7 +80,6 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
$results = '<div id="whoisonline">'; $results = '<div id="whoisonline">';
if (is_array($users) && count($users) > 0) { if (is_array($users) && count($users) > 0) {
$results .= '<div class="row">'; $results .= '<div class="row">';
$buttonClass = 'btn btn-default btn-sm'; $buttonClass = 'btn btn-default btn-sm';
foreach ($users as $user) { foreach ($users as $user) {
@ -104,8 +111,6 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
] ]
); );
$img = '<img src="'.$user_info['avatar'].'" class="img-responsive img-circle" width="100" height="100">';
if ($user_info['user_is_online']) { if ($user_info['user_is_online']) {
$status_icon = Display::return_icon('online.png', get_lang('OnLine'), null, ICON_SIZE_TINY); $status_icon = Display::return_icon('online.png', get_lang('OnLine'), null, ICON_SIZE_TINY);
} else { } else {
@ -122,20 +127,11 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
$user_info['complete_name'] = Display::url($user_info['complete_name'], $url); $user_info['complete_name'] = Display::url($user_info['complete_name'], $url);
$invitations = $user['tag'].$sendInvitation.$sendMessage; $invitations = $user['tag'].$sendInvitation.$sendMessage;
$results .= '<div class="col-md-3"> $results .= Display::getUserCard(
<div class="items-user"> $user_info,
<div class="items-user-avatar"> $status_icon.$user_icon,
'.$img.' $invitations
</div> );
<div class="user-info">
<p>'.$user_info['complete_name'].'</p>
<div class="items-user-status">' . $status_icon . $user_icon . '</div>
<div class="toolbar">
'.$invitations.'
</div>
</div>
</div>
</div>';
} }
$results .= '</div>'; $results .= '</div>';
} }
@ -181,8 +177,12 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
} else { } else {
$count_users_group = $count_users_group; $count_users_group = $count_users_group;
} }
$picture = $usergroup->get_picture_group($group['id'], $group['picture'], GROUP_IMAGE_SIZE_ORIGINAL); $picture = $usergroup->get_picture_group(
//$tags = $usergroup->get_group_tags($group['id']); $group['id'],
$group['picture'],
GROUP_IMAGE_SIZE_ORIGINAL
);
$tags = null; $tags = null;
$group['picture'] = '<img class="img-responsive img-circle" src="'.$picture['file'].'" />'; $group['picture'] = '<img class="img-responsive img-circle" src="'.$picture['file'].'" />';

Loading…
Cancel
Save