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. 29
      main/social/friends.php
  4. 64
      main/social/groups.php
  5. 48
      main/social/search.php

@ -2540,4 +2540,42 @@ HTML;
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'],
'username' => $my_user_info['username'],
'image' => $my_user_info['avatar'],
'user_info' => $my_user_info,
);
} else {
$list_ids_friends[] = $row;

@ -117,8 +117,8 @@ if (count($friends) == 0) {
$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);
$j = 0;
@ -126,31 +126,16 @@ if (count($friends) == 0) {
while ($j < $number_friends) {
if (isset($friends[$j])) {
$friend = $friends[$j];
$user_name = api_xml_http_response_encode($friend['firstName'].' '.$friend['lastName']);
$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') . '
</button>
</p>
</div>
</div>
</div>
';
$toolBar = '<button class="btn btn-danger" onclick="delete_friend(this)" id=img_' . $friend['friend_user_id'] . '>
' . get_lang('Delete') . '
</button>';
$friend_html .= Display::getUserCard($friend['user_info'], '', $toolBar);
}
$j++;
}
}
$friend_html .= '</div>';
$friend_html .= '</div>';
$social_right_content .= $friend_html;
}
$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>';
$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 ) {
$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) {
$count_users_group = $count_users_group.' '.get_lang('Member');
} else {
$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'].'" />';
$members = Display::returnFontAwesomeIcon('user').$count_users_group;
@ -146,21 +162,18 @@ foreach ($results as $result) {
//Avoiding my groups
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>';
$html .= '</div>';
$grid_item_2 = $html;
$grid_newest_groups[]= array($grid_item_2);
$grid_newest_groups[] = array($grid_item_2);
}
// Pop groups
$results = $usergroup->get_groups_by_popularity(4,false);
$results = $usergroup->get_groups_by_popularity(4, false);
$grid_pop_groups = array();
if (is_array($results) && count($results) > 0) {
@ -168,10 +181,22 @@ if (is_array($results) && count($results) > 0) {
$result['name'] = Security::remove_XSS($result['name'], STUDENT, true);
$result['description'] = Security::remove_XSS($result['description'], STUDENT, true);
$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));
if ($count_users_group == 1 ) {
$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) {
$count_users_group = $count_users_group.' '.get_lang('Member');
} else {
$count_users_group = $count_users_group.' '.get_lang('Members');
@ -197,9 +222,8 @@ if (is_array($results) && count($results) > 0) {
$html .= '';
}
//Avoiding my groups
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>';
@ -213,15 +237,21 @@ if (is_array($results) && count($results) > 0) {
// Display groups (newest, mygroups, pop)
$query_vars = array();
$newest_content = $popular_content = $my_group_content = null;
if (isset($_GET['view']) && in_array($_GET['view'], $allowed_views)) {
$view_group = $_GET['view'];
switch ($view_group) {
case 'mygroups':
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') {
$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;
$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_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();
$users = array();
$totalUsers = array();
$usergroup = new UserGroup();
// I'm searching something
if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) ) {
$itemPerPage = 8;
if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2)) {
$itemPerPage = 6;
if ($_GET['search_type']=='0' || $_GET['search_type']=='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);
// Get users from tags
@ -72,7 +80,6 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
$results = '<div id="whoisonline">';
if (is_array($users) && count($users) > 0) {
$results .= '<div class="row">';
$buttonClass = 'btn btn-default btn-sm';
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']) {
$status_icon = Display::return_icon('online.png', get_lang('OnLine'), null, ICON_SIZE_TINY);
} 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);
$invitations = $user['tag'].$sendInvitation.$sendMessage;
$results .= '<div class="col-md-3">
<div class="items-user">
<div class="items-user-avatar">
'.$img.'
</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 .= Display::getUserCard(
$user_info,
$status_icon.$user_icon,
$invitations
);
}
$results .= '</div>';
}
@ -181,8 +177,12 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
} else {
$count_users_group = $count_users_group;
}
$picture = $usergroup->get_picture_group($group['id'], $group['picture'], GROUP_IMAGE_SIZE_ORIGINAL);
//$tags = $usergroup->get_group_tags($group['id']);
$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'].'" />';

Loading…
Cancel
Save