invitations.php 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * @package chamilo.social
  5. * @author Julio Montoya <gugli100@gmail.com>
  6. */
  7. /**
  8. * Initialization
  9. */
  10. $language_file = array('messages','userInfo');
  11. $cidReset=true;
  12. require_once '../inc/global.inc.php';
  13. api_block_anonymous_users();
  14. if (api_get_setting('allow_social_tool') !='true') {
  15. api_not_allowed();
  16. }
  17. require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
  18. $this_section = SECTION_SOCIAL;
  19. $interbreadcrumb[]= array ('url' =>'profile.php','name' => get_lang('Social'));
  20. $interbreadcrumb[]= array ('url' =>'#','name' => get_lang('Invitations'));
  21. $htmlHeadXtra[] = '
  22. <script type="text/javascript">
  23. function denied_friend (element_input) {
  24. name_button=$(element_input).attr("id");
  25. name_div_id="id_"+name_button.substring(13);
  26. user_id=name_div_id.split("_");
  27. friend_user_id=user_id[1];
  28. $.ajax({
  29. contentType: "application/x-www-form-urlencoded",
  30. beforeSend: function(objeto) {
  31. $("#id_response").html("<img src=\'../inc/lib/javascript/indicator.gif\' />"); },
  32. type: "POST",
  33. url: "'.api_get_path(WEB_AJAX_PATH).'social.ajax.php?a=deny_friend",
  34. data: "denied_friend_id="+friend_user_id,
  35. success: function(datos) {
  36. $("div#"+name_div_id).hide("slow");
  37. $("#id_response").html(datos);
  38. }
  39. });
  40. }
  41. function register_friend(element_input) {
  42. if(confirm("'.get_lang('AddToFriends').'")) {
  43. name_button=$(element_input).attr("id");
  44. name_div_id="id_"+name_button.substring(13);
  45. user_id=name_div_id.split("_");
  46. user_friend_id=user_id[1];
  47. $.ajax({
  48. contentType: "application/x-www-form-urlencoded",
  49. beforeSend: function(objeto) {
  50. $("div#dpending_"+user_friend_id).html("<img src=\'../inc/lib/javascript/indicator.gif\' />"); },
  51. type: "POST",
  52. url: "'.api_get_path(WEB_AJAX_PATH).'social.ajax.php?a=add_friend",
  53. data: "friend_id="+user_friend_id+"&is_my_friend="+"friend",
  54. success: function(datos) { $("div#"+name_div_id).hide("slow");
  55. $("form").submit()
  56. }
  57. });
  58. }
  59. }
  60. </script>';
  61. api_block_anonymous_users();
  62. //Display :: display_header($tool_name, 'Groups');
  63. // easy links
  64. if (is_array($_GET) && count($_GET)>0) {
  65. foreach($_GET as $key => $value) {
  66. switch ($key) {
  67. case 'accept':
  68. $user_role = GroupPortalManager::get_user_group_role(api_get_user_id(), $value);
  69. if (in_array($user_role , array(GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER,GROUP_USER_PERMISSION_PENDING_INVITATION))) {
  70. GroupPortalManager::update_user_role(api_get_user_id(), $value, GROUP_USER_PERMISSION_READER);
  71. $show_message = get_lang('UserIsSubscribedToThisGroup');
  72. } elseif (in_array($user_role , array(GROUP_USER_PERMISSION_READER, GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_MODERATOR))) {
  73. $show_message = get_lang('UserIsAlreadySubscribedToThisGroup');
  74. } else {
  75. $show_message = get_lang('UserIsNotSubscribedToThisGroup');
  76. }
  77. break 2;
  78. case 'deny':
  79. // delete invitation
  80. GroupPortalManager::delete_user_rel_group(api_get_user_id(), $value);
  81. $show_message = get_lang('GroupInvitationWasDeny');
  82. break 2;
  83. }
  84. }
  85. }
  86. $social_left_content = SocialManager::show_social_menu('invitations');
  87. $social_right_content = '<div id="id_response" align="center"></div>';
  88. $list_get_invitation = array();
  89. $user_id = api_get_user_id();
  90. $list_get_invitation = SocialManager::get_list_invitation_of_friends_by_user_id($user_id);
  91. $list_get_invitation_sent = SocialManager::get_list_invitation_sent_by_user_id($user_id);
  92. $pending_invitations = GroupPortalManager::get_groups_by_user($user_id, GROUP_USER_PERMISSION_PENDING_INVITATION);
  93. $number_loop = count($list_get_invitation);
  94. $total_invitations = $number_loop + count($list_get_invitation_sent) + count($pending_invitations);
  95. if ($total_invitations == 0 && count($_GET) <= 0) {
  96. $social_right_content .= '<a href="search.php">'.get_lang('TryAndFindSomeFriends').'</a><br /><br />';
  97. }
  98. if ($number_loop != 0) {
  99. $social_right_content .= '<h2>'.get_lang('InvitationReceived').'</h2>';
  100. foreach ($list_get_invitation as $invitation) {
  101. $sender_user_id = $invitation['user_sender_id'];
  102. $social_right_content .= '<div id="id_'.$sender_user_id.'" class="invitation_confirm">';
  103. $picture = UserManager::get_user_picture_path_by_id($sender_user_id,'web',false,true);
  104. $friends_profile = SocialManager::get_picture_user($sender_user_id, $picture['file'], 92);
  105. $user_info = api_get_user_info($sender_user_id);
  106. $title = Security::remove_XSS($invitation['title'], STUDENT, true);
  107. $content = Security::remove_XSS($invitation['content'], STUDENT, true);
  108. $date = api_convert_and_format_date($invitation['send_date'], DATE_TIME_FORMAT_LONG);
  109. $social_right_content .= '<table cellspacing="0" border="0">
  110. <tbody>
  111. <tr>
  112. <td class="invitation_image">
  113. <a href="profile.php?u=<?php echo $sender_user_id; ?>">
  114. <img src="'.$friends_profile['file'].'" '.$friends_profile['style'].' /></a>
  115. </td>
  116. <td class="info">
  117. <a class="profile_link" href="profile.php?u='.$sender_user_id.'">'.api_get_person_name($user_info['firstName'], $user_info['lastName']).'</a>
  118. <div>
  119. '.$title.' : '.$content.'
  120. </div>
  121. <div>
  122. '.get_lang('DateSend').' : '.$date.'
  123. </div>
  124. <div class="buttons">
  125. <button class="save" name="btn_accepted" type="submit" id="btn_accepted_'.$sender_user_id.'" value="'.get_lang('Accept').' "onclick="javascript:register_friend(this)">
  126. '.get_lang('Accept').'</button>
  127. <button class="cancel" name="btn_denied" type="submit" id="btn_deniedst_'.$sender_user_id.' " value="'.get_lang('Deny').' " onclick="javascript:denied_friend(this)" >
  128. '.get_lang('Deny').'</button>
  129. </div>
  130. </td>
  131. </tr>
  132. </tbody>
  133. </table>
  134. </div>';
  135. }
  136. }
  137. if (count($list_get_invitation_sent) > 0 ) {
  138. $social_right_content .= '<h2>'.get_lang('InvitationSent').'</h2>';
  139. foreach ($list_get_invitation_sent as $invitation) {
  140. $sender_user_id = $invitation['user_receiver_id'];
  141. $social_right_content .= '<div id="id_'.$sender_user_id.'" class="invitation_confirm">';
  142. $picture = UserManager::get_user_picture_path_by_id($sender_user_id,'web',false,true);
  143. $friends_profile = SocialManager::get_picture_user($sender_user_id, $picture['file'], 92);
  144. $user_info = api_get_user_info($sender_user_id);
  145. $title = Security::remove_XSS($invitation['title'], STUDENT, true);
  146. $content = Security::remove_XSS($invitation['content'], STUDENT, true);
  147. $date = api_convert_and_format_date($invitation['send_date'], DATE_TIME_FORMAT_LONG);
  148. $social_right_content .= '
  149. <table cellspacing="0" border="0">
  150. <tbody>
  151. <tr>
  152. <td class="invitation_image">
  153. <a href="profile.php?u=<?php echo $sender_user_id;?>">
  154. <img src="'.$friends_profile['file'].'" '.$friends_profile['style'].' /></a>
  155. </td>
  156. <td class="info">
  157. <a class="profile_link" href="profile.php?u='.$sender_user_id.'">'.api_get_person_name($user_info['firstName'], $user_info['lastName']).'</a>
  158. <div>
  159. '. $title.' : '.$content.'
  160. </div>
  161. <div>
  162. '. get_lang('DateSend').' : '.$date.'
  163. </div>
  164. </td>
  165. </tr>
  166. </tbody>
  167. </table>
  168. </div>
  169. ';
  170. }
  171. }
  172. if (count($pending_invitations) > 0) {
  173. $social_right_content .= '<h2>'.get_lang('GroupsWaitingApproval').'</h2>';
  174. $new_invitation = array();
  175. foreach ($pending_invitations as $invitation) {
  176. $picture = GroupPortalManager::get_picture_group($invitation['id'], $invitation['picture_uri'],80);
  177. $img = '<img class="social-groups-image" src="'.$picture['file'].'" hspace="4" height="50" border="2" align="left" width="50" />';
  178. $invitation['picture_uri'] = '<a href="groups.php?id='.$invitation['id'].'">'.$img.'</a>';
  179. $invitation['name'] = '<a href="groups.php?id='.$invitation['id'].'">'.cut($invitation['name'],120,true).'</a>';
  180. $invitation['join'] = '<a href="invitations.php?accept='.$invitation['id'].'">'.Display::return_icon('accept_invitation.png', get_lang('AcceptInvitation')).'&nbsp;&nbsp;'.get_lang('AcceptInvitation').'</a>';
  181. $invitation['deny'] = '<a href="invitations.php?deny='.$invitation['id'].'">'.Display::return_icon('denied_invitation.png', get_lang('DenyInvitation')).'&nbsp;&nbsp;'.get_lang('DenyInvitation').'</a>';
  182. $invitation['description'] = cut($invitation['description'],220,true);
  183. $new_invitation[]=$invitation;
  184. }
  185. $social_right_content .= Display::display_return_grid('waiting_user', array(), $new_invitation, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,false,false,true,true,true,true));
  186. }
  187. $social_right_content .= '</div>';
  188. $tpl = new Template($tool_name);
  189. $tpl->assign('social_left_content', $social_left_content);
  190. $tpl->assign('social_left_menu', $social_left_menu);
  191. $tpl->assign('social_right_content', $social_right_content);
  192. $social_layout = $tpl->get_template('layout/social_layout.tpl');
  193. $content = $tpl->fetch($social_layout);
  194. $tpl->assign('actions', $actions);
  195. $tpl->assign('message', $show_message);
  196. $tpl->assign('content', $content);
  197. $tpl->display_one_col_template();