*/ $cidReset = true; require_once __DIR__.'/../inc/global.inc.php'; api_block_anonymous_users(); if (api_get_setting('allow_social_tool') !== 'true') { api_not_allowed(); } $this_section = SECTION_SOCIAL; // prepare anchor for message group topic $anchor = ''; if (isset($_GET['anchor_topic'])) { $anchor = Security::remove_XSS($_GET['anchor_topic']); } else { $match = 0; $param_names = array_keys($_GET); foreach ($param_names as $param) { if (preg_match('/^items_(\d)_page_nr$/', $param, $match)) { break; } } if (isset($match[1])) { $anchor = 'topic_'.$match[1]; } } $htmlHeadXtra[] = ''; $allowed_views = array('mygroups','newest','pop'); $content = null; if (isset($_GET['view']) && in_array($_GET['view'],$allowed_views)) { if ($_GET['view'] == 'mygroups') { $interbreadcrumb[]= array ('url' =>'groups.php','name' => get_lang('Groups')); $interbreadcrumb[]= array ('url' =>'#','name' => get_lang('MyGroups')); } else if ( $_GET['view'] == 'newest') { $interbreadcrumb[]= array ('url' =>'groups.php','name' => get_lang('Groups')); $interbreadcrumb[]= array ('url' =>'#','name' => get_lang('Newest')); } else { $interbreadcrumb[]= array ('url' =>'groups.php','name' => get_lang('Groups')); $interbreadcrumb[]= array ('url' =>'#','name' => get_lang('Popular')); } } else { $interbreadcrumb[]= array ('url' =>'groups.php','name' => get_lang('Groups')); if (!isset($_GET['id'])) { $interbreadcrumb[]= array ('url' =>'#','name' => get_lang('GroupList')); } else { //$interbreadcrumb[]= array ('url' =>'#','name' => get_lang('Group')); } } // getting group information $group_id = isset($_GET['id']) ? intval($_GET['id']) : null; $relation_group_title = ''; $role = 0; $usergroup = new UserGroup(); if ($group_id != 0) { $group_info = $usergroup->get($group_id); $interbreadcrumb[]= array ('url' =>'#','name' => $group_info['name']); if (isset($_GET['action']) && $_GET['action']=='leave') { $user_leaved = intval($_GET['u']); // I can "leave me myself" if (api_get_user_id() == $user_leaved) { if (UserGroup::canLeave($group_info)) { $usergroup->delete_user_rel_group($user_leaved, $group_id); Display::addFlash( Display::return_message(get_lang('UserIsNotSubscribedToThisGroup'), 'confirmation', false) ); } } } // add a user to a group if its open if (isset($_GET['action']) && $_GET['action']=='join') { // we add a user only if is a open group $user_join = intval($_GET['u']); if (api_get_user_id() == $user_join && !empty($group_id)) { if ($group_info['visibility'] == GROUP_PERMISSION_OPEN) { $usergroup->add_user_to_group($user_join, $group_id); Display::addFlash( Display::return_message(get_lang('UserIsSubscribedToThisGroup'), 'confirmation', false) ); } else { $usergroup->add_user_to_group( $user_join, $group_id, GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER ); Display::addFlash( Display::return_message(get_lang('InvitationSent'), 'confirmation', false) ); } } } } $create_thread_link = ''; $social_right_content = null; $socialForum = ''; $group_info = $usergroup->get($group_id); //Loading group information if (isset($_GET['status']) && $_GET['status']=='sent') { $social_right_content .= Display::return_message(get_lang('MessageHasBeenSent'), 'confirmation', false); } $is_group_member = $usergroup->is_group_member($group_id); $role = $usergroup->get_user_group_role(api_get_user_id(), $group_id); if (!$is_group_member && $group_info['visibility'] == GROUP_PERMISSION_CLOSED) { if ($role == GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER) { $social_right_content .= Display::return_message(get_lang('YouAlreadySentAnInvitation')); } } if ($is_group_member || $group_info['visibility'] == GROUP_PERMISSION_OPEN) { if (!$is_group_member) { if (!in_array($role, array(GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER, GROUP_USER_PERMISSION_PENDING_INVITATION)) ) { $social_right_content .= '
'; $social_right_content .= '
'; $social_right_content .= ''. get_lang('JoinGroup').''; $social_right_content .= '
'; $social_right_content .= '
'; } elseif ($role == GROUP_USER_PERMISSION_PENDING_INVITATION) { $social_right_content .= '
'; $social_right_content .= '
'; $social_right_content .= ''. Display::returnFontAwesomeIcon('envelope').' '. get_lang('YouHaveBeenInvitedJoinNow').''; } $social_right_content .= '
'; $social_right_content .= '
'; } $content = MessageManager::display_messages_for_group($group_id); if ($is_group_member) { if (empty($content)) { $createThreadUrl = api_get_path(WEB_CODE_PATH) . 'social/message_for_group_form.inc.php?' . http_build_query([ 'view_panel' => 1, 'user_friend' => api_get_user_id(), 'group_id' => $group_id, 'action' => 'add_message_group' ]); $create_thread_link = Display::url( Display::returnFontAwesomeIcon('commenting') . ' ' . get_lang('YouShouldCreateATopic'), $createThreadUrl, [ 'class' => 'ajax btn btn-primary', 'title' => get_lang('ComposeMessage'), 'data-title' => get_lang('ComposeMessage'), 'data-size' => 'lg' ] ); } else { $createThreadUrl = api_get_path(WEB_CODE_PATH) . 'social/message_for_group_form.inc.php?' . http_build_query([ 'view_panel' => 1, 'user_friend' => api_get_user_id(), 'group_id' => $group_id, 'action' => 'add_message_group', ]); $create_thread_link = Display::url( Display::returnFontAwesomeIcon('commenting') . ' ' . get_lang('NewTopic'), $createThreadUrl, [ 'class' => 'ajax btn btn-default', 'title' => get_lang('ComposeMessage'), 'data-title' => get_lang('ComposeMessage'), 'data-size' => 'lg' ] ); } } $members = $usergroup->get_users_by_group($group_id, true); $member_content = ''; // My friends $friend_html = SocialManager::listMyFriendsBlock( $user_id, '', '' ); // Members if (count($members) > 0) { if ($role == GROUP_USER_PERMISSION_ADMIN) { $member_content .= '
'; $member_content .= '
'; $member_content .= Display::url( Display::returnFontAwesomeIcon('pencil').' '.get_lang('EditMembersList'), 'group_members.php?id='.$group_id, array('class'=>'btn btn-default btn-sm', 'title' => get_lang('EditMembersList')) ); $member_content .= '
'; $member_content .= '
'; } $member_content .= '
'; $member_content .= '
'; foreach ($members as $member) { // if is a member if (in_array($member['relation_type'], array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_READER,GROUP_USER_PERMISSION_MODERATOR)) ) { //add icons if ($member['relation_type'] == GROUP_USER_PERMISSION_ADMIN) { $icon= Display::return_icon('social_group_admin.png', get_lang('Admin')); } elseif ($member['relation_type'] == GROUP_USER_PERMISSION_MODERATOR) { $icon= Display::return_icon('social_group_moderator.png', get_lang('Moderator')); } else { $icon= ''; } $userPicture = UserManager::getUserPicture($member['id']); $member_content .= '
'; $member_content .= '
'; $member_name = Display::url(api_get_person_name(cut($member['user_info']['firstname'],15),cut($member['user_info']['lastname'],15)).' '.$icon, $member['user_info']['profile_url']); $member_content .= Display::div('', array('class' => 'avatar')); $member_content .= Display::div($member_name, array('class' => 'name')); $member_content .= '
'; $member_content .= '
'; } } $member_content .= '
'; $member_content .= '
'; } if (!empty($create_thread_link)) { $create_thread_link = Display::div($create_thread_link, array('class'=>'pull-right')); } $headers = array(get_lang('Discussions'), get_lang('Members')); $socialForum = Display::tabs($headers, array($content, $member_content),'tabs'); } else { // if I already sent an invitation message if (!in_array( $role, array( GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER, GROUP_USER_PERMISSION_PENDING_INVITATION, ) ) ) { $social_right_content .= ''.get_lang('JoinGroup').''; } elseif ($role == GROUP_USER_PERMISSION_PENDING_INVITATION) { $social_right_content .= ''.get_lang('YouHaveBeenInvitedJoinNow').''; } } $tpl = new Template(null); // Block Social Avatar SocialManager::setSocialUserBlock($tpl, api_get_user_id(), 'groups', $group_id); //Block Social Menu $social_menu_block = SocialManager::show_social_menu('groups', $group_id); $tpl->setHelp('Groups'); $tpl->assign('create_link', $create_thread_link); $tpl->assign('is_group_member', $is_group_member); $tpl->assign('group_info', $group_info); $tpl->assign('social_friend_block', $friend_html); $tpl->assign('social_menu_block', $social_menu_block); $tpl->assign('social_forum', $socialForum); $tpl->assign('social_right_content', $social_right_content); $social_layout = $tpl->get_template('social/group_view.tpl'); $tpl->display($social_layout);