*/ $cidReset = true; require_once __DIR__.'/../inc/global.inc.php'; api_block_anonymous_users(); if (api_get_setting('allow_social_tool') !== 'true') { api_not_allowed(true); } $this_section = SECTION_SOCIAL; $interbreadcrumb[] = ['url' => 'profile.php', 'name' => get_lang('Social network')]; $interbreadcrumb[] = ['url' => '#', 'name' => get_lang('Invitations')]; $userGroupModel = new UserGroup(); if (is_array($_GET) && count($_GET) > 0) { foreach ($_GET as $key => $value) { switch ($key) { case 'accept': $useRole = $userGroupModel->get_user_group_role(api_get_user_id(), $value); if (in_array( $useRole, [ GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER, GROUP_USER_PERMISSION_PENDING_INVITATION, ] )) { $userGroupModel->update_user_role(api_get_user_id(), $value, GROUP_USER_PERMISSION_READER); Display::addFlash( Display::return_message(get_lang('User is subscribed to this group'), 'success') ); header('Location: '.api_get_path(WEB_CODE_PATH).'social/invitations.php'); exit; } if (in_array( $useRole, [ GROUP_USER_PERMISSION_READER, GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_MODERATOR, ] )) { Display::addFlash( Display::return_message(get_lang('User is already subscribed to this group'), 'warning') ); header('Location: '.api_get_path(WEB_CODE_PATH).'social/invitations.php'); exit; } Display::addFlash( Display::return_message(get_lang('User is not subscribed to this group'), 'warning') ); header('Location: '.api_get_path(WEB_CODE_PATH).'social/invitations.php'); exit; break; case 'deny': $userGroupModel->delete_user_rel_group(api_get_user_id(), $value); Display::addFlash( Display::return_message(get_lang('Group invitation was denied')) ); header('Location: '.api_get_path(WEB_CODE_PATH).'social/invitations.php'); exit; } } } $content = null; // Block Menu Social $social_menu_block = SocialManager::show_social_menu('invitations'); // Block Invitations $socialInvitationsBlock = '
'; $user_id = api_get_user_id(); $list_get_invitation = SocialManager::get_list_invitation_of_friends_by_user_id($user_id); $list_get_invitation_sent = SocialManager::get_list_invitation_sent_by_user_id($user_id); $pending_invitations = $userGroupModel->get_groups_by_user( $user_id, GROUP_USER_PERMISSION_PENDING_INVITATION ); $numberLoop = count($list_get_invitation); $total_invitations = $numberLoop + count($list_get_invitation_sent) + count($pending_invitations); if (count($_GET) <= 0) { $socialInvitationsBlock .= '
'. get_lang('Try and find some friends').'

'; } if ($numberLoop != 0) { $invitationHtml = ''; foreach ($list_get_invitation as $invitation) { $sender_user_id = $invitation['user_sender_id']; $user_info = api_get_user_info($sender_user_id); $userPicture = $user_info['avatar']; $invitationHtml .= '
'; $title = Security::remove_XSS($invitation['title'], STUDENT, true); $content = Security::remove_XSS($invitation['content'], STUDENT, true); $date = Display::dateToStringAgoAndLongDate($invitation['send_date']); $invitationHtml .= '
'; $invitationHtml .= '
'; $invitationHtml .= ''; $invitationHtml .= ''; $invitationHtml .= '
'; $invitationHtml .= '
'; $invitationHtml .= '
'; $invitationHtml .= '
'; $invitationHtml .= Display::toolbarButton( null, api_get_path(WEB_AJAX_PATH).'social.ajax.php?'.http_build_query([ 'a' => 'add_friend', 'friend_id' => $sender_user_id, 'is_my_friend' => 'friend', ]), 'check', 'primary', ['id' => 'btn-accept-'.$sender_user_id] ); $invitationHtml .= Display::toolbarButton( null, api_get_path(WEB_AJAX_PATH).'social.ajax.php?'.http_build_query([ 'a' => 'deny_friend', 'denied_friend_id' => $sender_user_id, ]), 'times', 'danger', ['id' => 'btn-deny-'.$sender_user_id] ); $invitationHtml .= '
'; $invitationHtml .= '
'; $invitationHtml .= '
'.$user_info['complete_name'].':
'; $invitationHtml .= '
'.$content.'
'; $invitationHtml .= '
'.get_lang('Sent').' : '.$date.'
'; $invitationHtml .= '
'; $invitationHtml .= '
'; } $socialInvitationsBlock .= Display::panel($invitationHtml, get_lang('Invitation received')); } if (count($list_get_invitation_sent) > 0) { $invitationSentHtml = ''; foreach ($list_get_invitation_sent as $invitation) { $sender_user_id = $invitation['user_receiver_id']; $user_info = api_get_user_info($sender_user_id); $invitationSentHtml .= '
'; $title = Security::remove_XSS($invitation['title'], STUDENT, true); $content = Security::remove_XSS($invitation['content'], STUDENT, true); $invitationSentHtml .= '
'; $invitationSentHtml .= '
'; $invitationSentHtml .= ''; $invitationSentHtml .= ''; $invitationSentHtml .= '
'; $invitationSentHtml .= '
'; $invitationSentHtml .= '

'.$user_info['complete_name'].'

'; $invitationSentHtml .= '
'.$title.' : '.$content.'
'; $invitationSentHtml .= '
'. get_lang('Sent').' : '.Display::dateToStringAgoAndLongDate($invitation['send_date']).'
'; $invitationSentHtml .= '
'; $invitationSentHtml .= '
'; } $socialInvitationsBlock .= Display::panel($invitationSentHtml, get_lang('Invitation sent')); } if (count($pending_invitations) > 0) { $new_invitation = []; $waitingInvitation = ''; foreach ($pending_invitations as $invitation) { $picture = $userGroupModel->get_picture_group( $invitation['id'], $invitation['picture'], null, GROUP_IMAGE_SIZE_BIG ); $img = ''; $invitation['picture_uri'] = ''.$img.''; $invitation['name'] = ''. cut($invitation['name'], 120, true).''; $invitation['description'] = cut($invitation['description'], 220, true); $new_invitation[] = $invitation; $waitingInvitation .= '
'; $waitingInvitation .= '
'.$invitation['picture_uri'].'
'; $waitingInvitation .= '
'; $waitingInvitation .= '

'.$invitation['name'].'

'; $waitingInvitation .= '
'.$invitation['description'].'
'; $waitingInvitation .= '
'; $waitingInvitation .= Display::toolbarButton( get_lang('Accept invitation'), api_get_path(WEB_CODE_PATH).'social/invitations.php?'.http_build_query(['accept' => $invitation['id']]), 'check', 'success', ['id' => 'accept-invitation-'.$invitation['id']] ); $waitingInvitation .= Display::toolbarButton( get_lang('Deny invitation'), api_get_path(WEB_CODE_PATH).'social/invitations.php?'.http_build_query(['deny' => $invitation['id']]), 'times', 'danger', ['id' => 'deny-invitation-'.$invitation['id']] ); $waitingInvitation .= '
'; $waitingInvitation .= '
'; } $socialInvitationsBlock .= Display::panel($waitingInvitation, get_lang('Groups waiting for approval')); } $tpl = new Template(null); SocialManager::setSocialUserBlock($tpl, api_get_user_id(), 'invitations'); $tpl->assign('social_menu_block', $social_menu_block); $tpl->assign('social_invitations_block', $socialInvitationsBlock); $tpl->assign('content', $content); $social_layout = $tpl->get_template('social/invitations.tpl'); $tpl->display($social_layout);