$social_right_content .= get_lang('YouNeedToHaveFriendsInYourSocialNetwork'); } else { $social_right_content .= get_lang('YouAlreadyInviteAllYourContacts'); } $social_right_content .= '<div>'; $social_right_content .= '<a href="search.php">' . get_lang('TryAndFindSomeFriends') . '</a>'; $social_right_content .= '</div>'; } $form = new FormValidator('invitation', 'post', api_get_self() . '?id=' . $group_id); $form->addHidden('form_sent', 1); $form->addHidden('id', $group_id); $group_members_element = $form->addElement('advmultiselect', 'invitation', get_lang('Friends'), $nosessionUsersList, 'style="width: 280px;"'); $form->addButtonSave(get_lang('InviteUsersToGroup')); $social_right_content .= $form->returnForm(); // Current group members $members = $usergroup->get_users_by_group($group_id, false, array(GROUP_USER_PERMISSION_PENDING_INVITATION)); if (is_array($members) && count($members) > 0) { foreach ($members as &$member) { $image = UserManager::getUserPicture($member['user_id']); $member['image'] = '<img src="' . $image . '" width="50px" height="50px" />'; } $social_right_content .= '<h3>' . get_lang('UsersAlreadyInvited') . '</h3>'; $social_right_content .= Display::return_sortable_grid('invitation_profile', array(), $members, array('hide_navigation' => true, 'per_page' => 100), array(), false, array(true, false, true, true)); } $tpl = \Chamilo\CoreBundle\Framework\Container::getTwig(); SocialManager::setSocialUserBlock($tpl, api_get_user_id(), 'groups', $group_id); $social_menu_block = SocialManager::show_social_menu('member_list', $group_id); $tpl->addGlobal('social_menu_block', $social_menu_block); //$tpl->setHelp('Groups'); $tpl->addGlobal('social_right_content', $social_right_content); echo $tpl->render('@template_style/social/add_groups.html.twig');
/** * Displays messages of a group with nested view * @param $group_id * @param $topic_id * @param $is_member * @param $message_id * @return string */ public static function display_message_for_group($group_id, $topic_id, $is_member, $message_id) { global $my_group_role; $main_message = self::get_message_by_id($topic_id); if (empty($main_message)) { return false; } $rows = self::get_messages_by_group_by_message($group_id, $topic_id); $rows = self::calculate_children($rows, $topic_id); $current_user_id = api_get_user_id(); $items_per_page = 50; $query_vars = array('id' => $group_id, 'topic_id' => $topic_id, 'topics_page_nr' => 0); // Main message $links = ''; $main_content = ''; $items_page_nr = null; $html = ''; $delete_button = ''; if (api_is_platform_admin()) { $delete_button = Display::url(Display::return_icon('delete.png', get_lang('Delete'), array(), ICON_SIZE_SMALL), 'group_topics.php?action=delete&id=' . $group_id . '&topic_id=' . $topic_id); } $html .= Display::page_subheader(Security::remove_XSS($main_message['title'] . $delete_button, STUDENT, true)); $user_sender_info = api_get_user_info($main_message['user_sender_id']); $files_attachments = self::get_links_message_attachment_files($main_message['id']); $name = $user_sender_info['complete_name']; $topic_page_nr = isset($_GET['topics_page_nr']) ? intval($_GET['topics_page_nr']) : null; $links .= '<div id="message-reply-link">'; if ($my_group_role == GROUP_USER_PERMISSION_ADMIN || $my_group_role == GROUP_USER_PERMISSION_MODERATOR || $main_message['user_sender_id'] == $current_user_id) { $urlEdit = api_get_path(WEB_CODE_PATH); $urlEdit .= 'social/message_for_group_form.inc.php?'; $urlEdit .= http_build_query(['user_friend' => $current_user_id, 'group_id' => $group_id, 'message_id' => $main_message['id'], 'action' => 'edit_message_group', 'anchor_topic' => 'topic_' . $main_message['id'], 'topics_page_nr' => $topic_page_nr, 'items_page_nr' => $items_page_nr, 'topic_id' => $main_message['id']]); $links .= Display::url(Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL), $urlEdit, ['class' => 'ajax btn btn-default', 'title' => get_lang('Edit'), 'data-title' => get_lang('Edit'), 'data-size' => 'lg']); } $urlReply = api_get_path(WEB_CODE_PATH); $urlReply .= 'social/message_for_group_form.inc.php?'; $urlReply .= http_build_query(['user_friend' => api_get_user_id(), 'group_id' => $group_id, 'message_id' => $main_message['id'], 'action' => 'reply_message_group', 'anchor_topic' => 'topic_' . $main_message['id'], 'topics_page_nr' => $topic_page_nr, 'topic_id' => $main_message['id']]); $links .= Display::url(Display::return_icon('talk.png', get_lang('Reply')), $urlReply, ['class' => 'ajax btn btn-default', 'title' => get_lang('Reply'), 'data-title' => get_lang('Reply'), 'data-size' => 'lg']); $links .= '</div>'; $userPicture = $user_sender_info['avatar']; $main_content .= '<div class="message-group-author"> <img src="' . $userPicture . '" alt="' . $name . '" width="32" height="32" title="' . $name . '" /></div>'; $user_link = '<a href="' . api_get_path(WEB_PATH) . 'main/social/profile.php?u=' . $main_message['user_sender_id'] . '">' . $name . ' </a>'; $date = ''; if ($main_message['send_date'] != $main_message['update_date']) { if (!empty($main_message['update_date']) && $main_message['update_date'] != '0000-00-00 00:00:00') { $date = '<div class="message-group-date"> ' . get_lang('LastUpdate') . ' ' . date_to_str_ago($main_message['update_date']) . '</div>'; } } else { $date = '<div class="message-group-date"> ' . get_lang('Created') . ' ' . date_to_str_ago($main_message['send_date']) . '</div>'; } $attachment = '<div class="message-attach">' . (!empty($files_attachments) ? implode('<br />', $files_attachments) : '') . '</div>'; $main_content .= '<div class="message-group-content">' . $links . $user_link . ' ' . $date . $main_message['content'] . $attachment . '</div>'; $main_content = Security::remove_XSS($main_content, STUDENT, true); $html .= Display::div(Display::div(Display::div($main_content, array('class' => 'group_social_sub_item', 'style' => 'background-color:#fff;')), array('class' => 'group_social_item')), array('class' => 'group_social_grid')); $topic_id = $main_message['id']; if (is_array($rows) && count($rows) > 0) { $topics = $rows; $array_html_items = array(); foreach ($topics as $index => $topic) { if (empty($topic['id'])) { continue; } $items_page_nr = isset($_GET['items_' . $topic['id'] . '_page_nr']) ? intval($_GET['items_' . $topic['id'] . '_page_nr']) : null; $links = ''; $html_items = ''; $user_sender_info = api_get_user_info($topic['user_sender_id']); $files_attachments = self::get_links_message_attachment_files($topic['id']); $name = $user_sender_info['complete_name']; $links .= '<div id="message-reply-link">'; if ($my_group_role == GROUP_USER_PERMISSION_ADMIN || $my_group_role == GROUP_USER_PERMISSION_MODERATOR || $topic['user_sender_id'] == $current_user_id) { $links .= '<a href="' . api_get_path(WEB_CODE_PATH) . 'social/message_for_group_form.inc.php?height=400&width=800&&user_friend=' . $current_user_id . '&group_id=' . $group_id . '&message_id=' . $topic['id'] . '&action=edit_message_group&anchor_topic=topic_' . $topic_id . '&topics_page_nr=' . $topic_page_nr . '&items_page_nr=' . $items_page_nr . '&topic_id=' . $topic_id . '" class="ajax btn" data-size="lg" data-title="' . get_lang('Edit') . '" title="' . get_lang('Edit') . '">' . Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL) . '</a>'; } $links .= ' <a href="' . api_get_path(WEB_CODE_PATH) . 'social/message_for_group_form.inc.php?height=400&width=800&&user_friend=' . api_get_user_id() . '&group_id=' . $group_id . '&message_id=' . $topic['id'] . '&action=reply_message_group&anchor_topic=topic_' . $topic_id . '&topics_page_nr=' . $topic_page_nr . '&items_page_nr=' . $items_page_nr . '&topic_id=' . $topic_id . '" class="ajax btn" data-size="lg" data-title="' . get_lang('Reply') . '" title="' . get_lang('Reply') . '">'; $links .= Display::return_icon('talk.png', get_lang('Reply')) . '</a>'; $links .= '</div>'; $userPicture = $user_sender_info['avatar']; $html_items .= '<div class="message-group-author"><img src="' . $userPicture . '" alt="' . $name . '" width="32" height="32" title="' . $name . '" /></div>'; $user_link = '<a href="' . api_get_path(WEB_PATH) . 'main/social/profile.php?u=' . $topic['user_sender_id'] . '">' . $name . ' </a>'; $date = ''; if ($topic['send_date'] != $topic['update_date']) { if (!empty($topic['update_date']) && $topic['update_date'] != '0000-00-00 00:00:00') { $date = '<div class="message-group-date"> ' . get_lang('LastUpdate') . ' ' . date_to_str_ago($topic['update_date']) . '</div>'; } } else { $date = '<div class="message-group-date"> ' . get_lang('Created') . ' ' . date_to_str_ago($topic['send_date']) . '</div>'; } $attachment = '<div class="message-attach">' . (!empty($files_attachments) ? implode('<br />', $files_attachments) : '') . '</div>'; $html_items .= '<div class="message-group-content">' . $links . $user_link . ' ' . $date . Security::remove_XSS($topic['content'], STUDENT, true) . $attachment . '</div>'; $base_padding = 20; if ($topic['indent_cnt'] == 0) { $indent = $base_padding; } else { $indent = intval($topic['indent_cnt']) * $base_padding + $base_padding; } $class = 'group_social_sub_item'; if (isset($message_id) && $message_id == $topic['id']) { $class .= ' group_social_sub_item_highlight'; } $html_items = Display::div($html_items, array('class' => $class, 'id' => 'msg_' . $topic['id'])); $html_items = Display::div($html_items, array('class' => '', 'style' => 'margin-left:' . $indent . 'px')); $array_html_items[] = array($html_items); } // grids for items with paginations $options = array('hide_navigation' => false, 'per_page' => $items_per_page); $visibility = array(true, true, true, false); $style_class = array('item' => array('class' => 'group_social_item'), 'main' => array('class' => 'group_social_grid')); if (!empty($array_html_items)) { $html .= Display::return_sortable_grid('items_' . $topic['id'], array(), $array_html_items, $options, $query_vars, null, $visibility, false, $style_class); } } return $html; }
); $picture = UserManager::get_picture_user( $user['user_id'], $image_path['file'], 80 ); $user['image'] = '<img src="' . $picture['file'] . '" width="50px" height="50px" />'; $new_member_list[] = $user; } if (count($new_member_list) > 0) { $social_right_content .= Display::return_sortable_grid( 'list_members', array(), $new_member_list, array('hide_navigation' => true, 'per_page' => 100), array(), false, array(true, false, true, true, false, true, true) ); } $social_right_content .= '</div>'; $tpl = new Template($tool_name); $tpl->set_help('Groups'); $tpl->assign('social_avatar_block', $social_avatar_block); $tpl->assign('social_menu_block', $social_menu_block); $tpl->assign('social_right_content', $social_right_content); $social_layout = $tpl->get_template('layout/social_layout.tpl'); $tpl->display($social_layout);
$my_group_content = null; 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)); } 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">' . get_lang('CreateASocialGroup') . '</a>'; } else { if (api_is_allowed_to_edit(null, true)) { $create_group_item = '<a class="btn btn-default" href="' . api_get_path(WEB_PATH) . 'main/social/group_add.php">' . get_lang('CreateASocialGroup') . '</a>'; } } if (count($grid_newest_groups) > 0) { $newest_content = Display::return_sortable_grid('mygroups', array(), $grid_newest_groups, array('hide_navigation' => true, 'per_page' => 100), $query_vars, false, array(true, true, true, false)); } if (count($grid_pop_groups) > 0) { $popular_content = Display::return_sortable_grid('mygroups', array(), $grid_pop_groups, array('hide_navigation' => true, 'per_page' => 100), $query_vars, false, array(true, true, true, true, true)); } } if (!empty($create_group_item)) { $social_right_content .= Display::page_subheader($create_group_item); } $headers = array(get_lang('Newest'), get_lang('Popular'), get_lang('MyGroups')); $social_right_content .= Display::tabs($headers, array($newest_content, $popular_content, $my_group_content), 'tab_browse'); $show_message = null; if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'show_message' && isset($_REQUEST['msg']) && $_REQUEST['msg'] == 'topic_deleted') { $show_message = Display::return_message(get_lang('Deleted'), 'success'); } $tpl = new Template(null); // Block Social Avatar SocialManager::setSocialUserBlock($tpl, $user_id, $show_menu); $show_menu = 'browse_groups';
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($group['id'], $group['picture'], 80); $tags = $usergroup->get_group_tags($group['id']); $group['picture'] = '<img class="social-groups-image" src="' . $picture['file'] . '" hspace="4" height="50" border="2" align="left" width="50" />'; $item_0 = Display::div($group['picture'], array('class' => 'box_description_group_image')); $members = Display::span($count_users_group, array('class' => 'box_description_group_member')); $item_1 = Display::div(Display::tag('h3', $url_open . $name . $url_close) . $members, array('class' => 'box_description_group_title')); $item_2 = ''; $item_3 = ''; if ($group['description'] != '') { $item_3 = '<div class="box_description_group_content" >' . Text::cut($group['description'], 100, true) . '</div>'; } else { $item_2 = '<div class="box_description_group_title" ><span class="social-groups-text2"></span></div>'; $item_3 = '<div class="box_description_group_content" ></div>'; } $item_4 = '<div class="box_description_group_tags" >' . $tags . '</div>'; $item_5 = '<div class="box_description_group_actions" >' . $url_open . get_lang('SeeMore') . $url_close . '</div>'; $grid_item_2 = $item_0 . $item_1 . $item_2 . $item_3 . $item_4 . $item_5; $grid_groups[] = array('', $grid_item_2); } } $visibility = array(true, true, true, true, true); $social_right_content .= Display::return_sortable_grid('mygroups', array(), $grid_groups, array('hide_navigation' => true, 'per_page' => 5), $query_vars, false, $visibility); } $app['title'] = $tool_name; $tpl = $app['template']; $tpl->assign('content', $social_right_content);
<div class="span3"> <a class="profile_link" href="' . $userInfo['profile_url'] . '">' . $userInfo['complete_name'] . '</a> <div>' . $title . ' : ' . $content . '</div> <div>' . get_lang('DateSend') . ' : ' . $date . '</div> </div> </div>'; } } if (count($pending_invitations) > 0) { $social_right_content .= Display::page_subheader(get_lang('GroupsWaitingApproval')); $new_invitation = array(); foreach ($pending_invitations as $invitation) { $picture = $usergroup->get_picture_group($invitation['id'], $invitation['picture'], 80); $img = '<img class="social-groups-image" src="' . $picture['file'] . '" hspace="4" height="50" border="2" align="left" width="50" />'; $invitation['picture'] = '<a href="groups.php?id=' . $invitation['id'] . '">' . $img . '</a>'; $invitation['name'] = '<a href="groups.php?id=' . $invitation['id'] . '">' . Text::cut($invitation['name'], 120, true) . '</a>'; $invitation['join'] = '<a class="btn btn-primary" href="invitations.php?accept=' . $invitation['id'] . '">' . get_lang('AcceptInvitation') . '</a>'; $invitation['deny'] = '<a class="btn btn-danger" href="invitations.php?deny=' . $invitation['id'] . '">' . get_lang('DenyInvitation') . '</a>'; $invitation['description'] = Text::cut($invitation['description'], 220, true); $new_invitation[] = $invitation; } $social_right_content .= Display::return_sortable_grid('waiting_user', array(), $new_invitation, array('hide_navigation' => true, 'per_page' => 100), array(), false, array(true, true, true, false, false, true, true, true, true)); } $social_right_content = Display::div($social_right_content, array('class' => 'span9')); $tpl = $app['template']; $tpl->assign('social_left_content', $social_left_content); $tpl->assign('social_right_content', $social_right_content); $tpl->assign('message', $show_message); $tpl->assign('content', $content); $social_layout = $tpl->get_template('layout/social_layout.tpl'); $tpl->display($social_layout);
$results = $usergroup->get_groups_by_popularity(1, false); $groups_pop = array(); foreach ($results as $result) { $result['description'] = Security::remove_XSS($result['description'], STUDENT, true); $result['name'] = Security::remove_XSS($result['name'], STUDENT, true); $id = $result['id']; $group_url = "groups.php?id={$id}"; if ($result['count'] == 1) { $result['count'] = '1 ' . get_lang('Member'); } else { $result['count'] = $result['count'] . ' ' . get_lang('Members'); } $result['name'] = Display::url(api_ucwords(Text::cut($result['name'], 40, true)), $group_url) . Display::span('<br />' . $result['count'], array('class' => 'box_description_group_member')); $picture = $usergroup->get_picture_group($id, $result['picture'], 80); $result['picture_uri'] = '<img class="social-groups-image" src="' . $picture['file'] . '" hspace="10" height="44" border="2" align="left" width="44" />'; $group_actions = '<div class="box_description_group_actions" ><a href="groups.php?#tab_browse-3">' . get_lang('SeeMore') . '</a></div>'; $groups_pop[] = array(Display::url($result['picture_uri'], $group_url), $result['name'], Text::cut($result['description'], 120, true) . $group_actions); } if (count($groups_newest) > 0) { $social_right_content .= '<div class="social-groups-home-title">' . get_lang('Newest') . '</div>'; $social_right_content .= Display::return_sortable_grid('home_group', array(), $groups_newest, array('hide_navigation' => true, 'per_page' => 100), array(), false, array(true, true, true, false)); } if (count($groups_pop) > 0) { $social_right_content .= '<div class="social-groups-home-title">' . get_lang('Popular') . '</div>'; $social_right_content .= Display::return_sortable_grid('home_group', array(), $groups_pop, array('hide_navigation' => true, 'per_page' => 100), array(), false, array(true, true, true, true, true)); } $social_right_content .= '</div>'; $app['title'] = get_lang('SocialNetwork'); $tpl = $app['template']; $tpl->assign('content', $social_right_content); $tpl->display_one_col_template();
<div class="card"> <div class="avatar"> ' . $group['picture'] . ' </div> <div class="content"> ' . $item_1 . ' <p>' . $group['description'] . '</p> <p>' . $tags . '</p> <p>' . $url_open . get_lang('SeeMore') . $url_close . '</p> </div> </div> </div>'; } $social_right_content .= '</ul></div></div>'; } $visibility = array(true, true, true, true, true); $social_right_content .= Display::return_sortable_grid('groups', null, $grid_groups, array('hide_navigation' => false, 'per_page' => $itemPerPage), $query_vars, false, $visibility, true, array(), $totalGroups); } $tpl = new Template($tool_name); // Block Social Avatar SocialManager::setSocialUserBlock($tpl, $user_id, 'search'); $tpl->assign('social_menu_block', $social_menu_block); $tpl->assign('social_right_content', $social_right_content); $tpl->assign('search_form', $searchForm); $formModalTpl = new Template(); $formModalTpl->assign('messageForm', MessageManager::generate_message_form('send_message')); $formModalTpl->assign('invitationForm', MessageManager::generate_invitation_form('send_invitation')); $formModals = $formModalTpl->fetch('default/social/form_modals.tpl'); $tpl->assign('formModals', $formModals); $social_layout = $tpl->get_template('social/search.tpl'); $tpl->display($social_layout);