groups.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <?php
  2. /* For licensing terms, see /dokeos_license.txt */
  3. $language_file = array('admin');
  4. require_once '../inc/global.inc.php';
  5. require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
  6. require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
  7. require_once api_get_path(LIBRARY_PATH).'social.lib.php';
  8. require_once api_get_path(LIBRARY_PATH).'message.lib.php';
  9. $this_section = SECTION_SOCIAL;
  10. $interbreadcrumb[]= array ('url' =>'home.php','name' => get_lang('Social'));
  11. Display :: display_header($tool_name, 'Groups');
  12. //show the action menu
  13. SocialManager::show_social_menu();
  14. echo '<div class="actions-title">';
  15. echo get_lang('Groups');
  16. echo '</div>';
  17. // getting group information
  18. $group_id = intval($_GET['id']);
  19. $group_info = GroupPortalManager::get_group_data($group_id);
  20. if ($group_id != 0 ) {
  21. //Loading group information
  22. if (isset($_GET['status']) && $_GET['status']=='sent') {
  23. Display::display_confirmation_message(get_lang('MessageHasBeenSent'), false);
  24. }
  25. if (isset($_GET['action']) && $_GET['action']=='leave') {
  26. $user_leaved = intval($_GET['u']);
  27. //I can "leave me myself"
  28. if (api_get_user_id() == $user_leaved) {
  29. GroupPortalManager::delete_user_rel_group($user_leaved, $group_id);
  30. }
  31. }
  32. // add a user to a group if its open
  33. if (isset($_GET['action']) && $_GET['action']=='join') {
  34. // we add a user only if is a open group
  35. $user_join = intval($_GET['u']);
  36. if (api_get_user_id() == $user_join) {
  37. if ($group_info['visibility'] == GROUP_PERMISSION_OPEN) {
  38. GroupPortalManager::add_user_to_group($user_join, $group_id);
  39. } else {
  40. GroupPortalManager::add_user_to_group($user_join, $group_id, GROUP_USER_PERMISSION_PENDING_INVITATION);
  41. }
  42. }
  43. }
  44. $picture = GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'],160,'medium_');
  45. $tags = GroupPortalManager::get_group_tags($group_id, true);
  46. $users = GroupPortalManager::get_users_by_group($group_id, true);
  47. echo '<div id="layout-left" style="float: left; width: 280px; height: 100%;">';
  48. //Group's title
  49. echo '<h1>'.$group_info['name'].'</h1>';
  50. //image
  51. echo '<div id="group_image">';
  52. echo $img = '<img src="'.$picture['file'].'" />';
  53. echo '</div>';
  54. //description
  55. echo '<div id="group_description">';
  56. echo $group_info['description'];
  57. echo '</div>';
  58. //Privacy
  59. echo '<div id="group_privacy">';
  60. echo get_lang('Privacy').' : ';
  61. if ($group_info['visibility']== GROUP_PERMISSION_OPEN) {
  62. echo get_lang('ThisIsAnOpenGroup');
  63. } elseif ($group_info['visibility']== GROUP_PERMISSION_CLOSED) {
  64. echo get_lang('ThisIsACloseGroup');
  65. }
  66. echo '</div>';
  67. //group tags
  68. if (!empty($tags)) {
  69. echo '<div id="group_tags">';
  70. echo get_lang('Tags').' : '.$tags;
  71. echo '</div>';
  72. }
  73. echo '<div id="actions" style="margin:10px">';
  74. echo '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?group_id='.$group_id.'">'.Display::return_icon('message_new.png',api_xml_http_response_encode(get_lang('ComposeMessage'))).api_xml_http_response_encode(get_lang('ComposeMessage')).'</a>';
  75. echo '</div>';
  76. echo get_lang('Members').' : ';
  77. echo '<div id="group_members">';
  78. foreach($users as $user) {
  79. if ($user['relation_type'] != GROUP_USER_PERMISSION_PENDING_INVITATION) {
  80. if ($user['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
  81. $user['lastname'].= Display::return_icon('admin_star.png', get_lang('Admin'));
  82. }
  83. echo '<div class="group_member_item"><a href="profile.php?u='.$user['user_id'].'">'.$user['picture_uri'].$user['firstname'].$user['lastname'].'</a></div>';
  84. }
  85. }
  86. echo '</div>';
  87. echo '<div id="group_permissions">';
  88. if (is_array($users[api_get_user_id()]) && count($users[api_get_user_id()]) > 0) {
  89. //im a member
  90. if ($users[api_get_user_id()]['relation_type'] !='' ) {
  91. $my_group_role = $users[api_get_user_id()]['relation_type'];
  92. // I'm just a reader
  93. if ($my_group_role == GROUP_USER_PERMISSION_READER) {
  94. echo '<a href="groups.php?id='.$group_id.'&action=leave&u='.api_get_user_id().'">'.get_lang('LeaveGroup').'</a>';
  95. echo 'Invite others/';
  96. //the main admin
  97. } elseif ($my_group_role == GROUP_USER_PERMISSION_ADMIN) {
  98. echo 'Im the admin/';
  99. echo '<a href="group_edit.php?id='.$group_id.'">'.get_lang('EditGroup').'</a>';
  100. echo '<a href="group_members.php?id='.$group_id.'">'.get_lang('MemberList').'</a>';
  101. echo '<a href="group_invitation.php?id='.$group_id.'">'.get_lang('InviteFriends').'</a>';
  102. } elseif ($my_group_role == GROUP_USER_PERMISSION_PENDING_INVITATION) {
  103. echo get_lang('PendingApproval');
  104. }
  105. } else {
  106. if ($group_info['visibility']!= GROUP_PERMISSION_CLOSED ) {
  107. //im not a member
  108. echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a>';
  109. }
  110. }
  111. } else {
  112. //im not a member
  113. echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a>';
  114. }
  115. echo '</div>'; // end layout permissions
  116. echo '</div>'; // end layout left
  117. echo '<div id="layout_right" style="margin-left: 282px;">';
  118. echo '<div class="messages">';
  119. MessageManager::display_messages_for_group($group_id);
  120. echo '</div>'; // end layout messages
  121. echo '</div>'; // end layout right
  122. } else {
  123. // Newest groups --------
  124. $results = GroupPortalManager::get_groups_by_age(10 , true);
  125. $groups = array();
  126. foreach ($results as $result) {
  127. $id = $result['id'];
  128. $url_open = '<a href="groups.php?id='.$id.'">';
  129. $url_close = '</a>';
  130. $groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close);
  131. }
  132. if (count($groups) > 0) {
  133. echo '<h1>'.get_lang('Newest').'</h1>';
  134. Display::display_sortable_grid('search_users', array(), $groups, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,false));
  135. }
  136. // Pop groups -----
  137. $results = GroupPortalManager::get_groups_by_popularity(10 , true);
  138. $groups = array();
  139. foreach ($results as $result) {
  140. $id = $result['id'];
  141. $url_open = '<a href="groups.php?id='.$id.'">';
  142. $url_close = '</a>';
  143. $groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close,$result['count']);
  144. }
  145. if (count($groups) > 0) {
  146. echo '<h1>'.get_lang('Popular').'</h1>';
  147. Display::display_sortable_grid('search_users', array(), $groups, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,true));
  148. }
  149. // My groups -----
  150. $results = GroupPortalManager::get_groups_by_user(api_get_user_id(), 0, true);
  151. $groups = array();
  152. foreach ($results as $result) {
  153. $id = $result['id'];
  154. $url_open = '<a href="groups.php?id='.$id.'">';
  155. $url_close = '</a>';
  156. if ($result['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
  157. $result['name'].= Display::return_icon('admin_star.png', get_lang('Admin'));
  158. }
  159. $groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close);
  160. }
  161. echo '<h1>'.get_lang('MyGroups').'</h1>';
  162. echo '<a href="group_add.php">'.get_lang('CreateAgroup').'</a>';
  163. if (count($groups) > 0) {
  164. Display::display_sortable_grid('search_users', array(), $groups, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,false));
  165. }
  166. }
  167. Display :: display_footer();
  168. ?>