Example #1
0
 /**
  * Shows the right menu of the Social Network tool
  *
  * @param string highlight link possible values: group_add, home, messages, messages_inbox, messages_compose ,messages_outbox ,invitations, shared_profile, friends, groups search
  * @param int group id
  * @param int user id
  * @param bool show profile or not (show or hide the user image/information)
  *
  */
 public static function show_social_menu($show = '', $group_id = 0, $user_id = 0, $show_full_profile = false, $show_delete_account_button = false)
 {
     if (empty($user_id)) {
         $user_id = api_get_user_id();
     }
     $usergroup = new UserGroup();
     $user_info = api_get_user_info($user_id, true);
     $current_user_id = api_get_user_id();
     $current_user_info = api_get_user_info($current_user_id, true);
     if ($current_user_id == $user_id) {
         $user_friend_relation = null;
     } else {
         $user_friend_relation = SocialManager::get_relation_between_contacts($current_user_id, $user_id);
     }
     $show_groups = array('groups', 'group_messages', 'messages_list', 'group_add', 'mygroups', 'group_edit', 'member_list', 'invite_friends', 'waiting_list', 'browse_groups');
     // get count unread message and total invitations
     $count_unread_message = MessageManager::get_number_of_messages(true);
     $count_unread_message = !empty($count_unread_message) ? Display::badge($count_unread_message) : '';
     $number_of_new_messages_of_friend = SocialManager::get_message_number_invitation_by_user_id(api_get_user_id());
     $group_pending_invitations = $usergroup->get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_PENDING_INVITATION, false);
     $group_pending_invitations = count($group_pending_invitations);
     $total_invitations = $number_of_new_messages_of_friend + $group_pending_invitations;
     $total_invitations = !empty($total_invitations) ? Display::badge($total_invitations) : '';
     $html = '<div class="social-menu">';
     if (in_array($show, $show_groups) && !empty($group_id)) {
         //--- Group image
         $group_info = $usergroup->get($group_id);
         $big = $usergroup->get_picture_group($group_id, $group_info['picture'], 160, GROUP_IMAGE_SIZE_BIG);
         $html .= '<div class="social-content-image">';
         $html .= '<div class="well social-background-content">';
         $html .= Display::url('<img src=' . $big['file'] . ' class="social-groups-image" /> </a><br /><br />', api_get_path(WEB_PATH) . 'main/social/groups.php?id=' . $group_id);
         if ($usergroup->is_group_admin($group_id, api_get_user_id())) {
             $html .= '<div id="edit_image" class="hidden_message" style="display:none"><a href="' . api_get_path(WEB_PATH) . 'main/social/group_edit.php?id=' . $group_id . '">' . get_lang('EditGroup') . '</a></div>';
         }
         $html .= '</div>';
         $html .= '</div>';
     } else {
         $img_array = UserManager::get_user_picture_path_by_id($user_id, 'web', true, true);
         $big_image = UserManager::get_picture_user($user_id, $img_array['file'], '', USER_IMAGE_SIZE_BIG);
         $big_image = $big_image['file'];
         $normal_image = $img_array['dir'] . $img_array['file'];
         //--- User image
         $html .= '<div class="well social-background-content">';
         if ($img_array['file'] != 'unknown.jpg') {
             $html .= '<a class="thumbnail ajax" href="' . $big_image . '"><img src=' . $normal_image . ' /> </a>';
         } else {
             $html .= '<img src=' . $normal_image . ' width="110px" />';
         }
         if (api_get_user_id() == $user_id) {
             $html .= '<div id="edit_image" class="hidden_message" style="display:none">';
             $html .= '<a href="' . api_get_path(WEB_PATH) . 'main/auth/profile.php">' . get_lang('EditProfile') . '</a></div>';
         }
         $html .= '</div>';
     }
     if (!in_array($show, array('shared_profile', 'groups', 'group_edit', 'member_list', 'waiting_list', 'invite_friends'))) {
         $html .= '<div class="well sidebar-nav"><ul class="nav nav-list">';
         $active = $show == 'home' ? 'active' : null;
         $html .= '<li class="' . $active . '"><a href="' . api_get_path(WEB_PATH) . 'main/social/home.php">' . Display::return_icon('home.png', get_lang('Home'), array()) . get_lang('Home') . '</a></li>';
         if (api_get_setting('allow_message_tool') == 'true') {
             $active = $show == 'messages' ? 'active' : null;
             $html .= '<li class="' . $active . '"><a href="' . api_get_path(WEB_PATH) . 'main/messages/inbox.php?f=social">' . Display::return_icon('instant_message.png', get_lang('Messages'), array()) . get_lang('Messages') . $count_unread_message . '</a></li>';
         }
         // Invitations
         if (api_get_setting('allow_message_tool') == 'true') {
             $active = $show == 'invitations' ? 'active' : null;
             $html .= '<li class="' . $active . '"><a href="' . api_get_path(WEB_PATH) . 'main/social/invitations.php">' . Display::return_icon('invitation.png', get_lang('Invitations'), array()) . get_lang('Invitations') . $total_invitations . '</a></li>';
         }
         //Shared profile and groups
         $active = $show == 'shared_profile' ? 'active' : null;
         $html .= '<li class="' . $active . '"><a href="' . api_get_path(WEB_PATH) . 'main/social/profile.php">' . Display::return_icon('my_shared_profile.png', get_lang('ViewMySharedProfile'), array()) . get_lang('ViewMySharedProfile') . '</a></li>';
         $active = $show == 'friends' ? 'active' : null;
         $html .= '<li class="' . $active . '"><a href="' . api_get_path(WEB_PATH) . 'main/social/friends.php">' . Display::return_icon('friend.png', get_lang('Friends'), array()) . get_lang('Friends') . '</a></li>';
         $active = $show == 'browse_groups' ? 'active' : null;
         $html .= '<li class="' . $active . '"><a href="' . api_get_path(WEB_PATH) . 'main/social/groups.php">' . Display::return_icon('group_s.png', get_lang('SocialGroups'), array()) . get_lang('SocialGroups') . '</a></li>';
         //Search users
         $active = $show == 'search' ? 'active' : null;
         $html .= '<li class="' . $active . '"><a href="' . api_get_path(WEB_PATH) . 'main/social/search.php">' . Display::return_icon('zoom.png', get_lang('Search'), array()) . get_lang('Search') . '</a></li>';
         $html .= '</ul>
               </div>';
     }
     if (in_array($show, $show_groups) && !empty($group_id)) {
         $html .= $usergroup->show_group_column_information($group_id, api_get_user_id(), $show);
     }
     if ($show == 'shared_profile') {
         //echo '<div align="center" class="social-menu-title" ><span class="social-menu-text1">'.get_lang('Menu').'</span></div>';
         $html .= '<div class="well sidebar-nav">
                 <ul class="nav nav-list">';
         // My own profile
         if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             $html .= '<li><a href="' . api_get_path(WEB_PATH) . 'main/social/home.php">' . Display::return_icon('home.png', get_lang('Home'), array()) . get_lang('Home') . '</a></li>';
             if (api_get_setting('allow_message_tool') == 'true') {
                 $html .= '<li><a href="' . api_get_path(WEB_PATH) . 'main/messages/inbox.php?f=social">' . Display::return_icon('instant_message.png', get_lang('Messages'), array()) . get_lang('Messages') . $count_unread_message . '</a></li>';
                 $active = $show == 'invitations' ? 'active' : null;
                 $html .= '<li class="' . $active . '"><a href="' . api_get_path(WEB_PATH) . 'main/social/invitations.php">' . Display::return_icon('invitation.png', get_lang('Invitations'), array()) . get_lang('Invitations') . $total_invitations . '</a></li>';
             }
             $html .= '<li class="active"><a href="' . api_get_path(WEB_PATH) . 'main/social/profile.php">' . Display::return_icon('my_shared_profile.png', get_lang('ViewMySharedProfile'), array('style' => 'float:left')) . '' . get_lang('ViewMySharedProfile') . '</a></li>
                       <li><a href="' . api_get_path(WEB_PATH) . 'main/social/friends.php">' . Display::return_icon('friend.png', get_lang('Friends'), array()) . get_lang('Friends') . '</a></li>
                       <li><a href="' . api_get_path(WEB_PATH) . 'main/social/groups.php">' . Display::return_icon('group_s.png', get_lang('SocialGroups'), array()) . get_lang('SocialGroups') . '</a></li>';
             $active = $show == 'search' ? 'active' : null;
             $html .= '<li class="' . $active . '"><a href="' . api_get_path(WEB_PATH) . 'main/social/search.php">' . Display::return_icon('zoom.png', get_lang('Search'), array()) . get_lang('Search') . '</a></li>';
         }
         // My friend profile
         if (api_get_setting('allow_message_tool') == 'true') {
             if ($user_id != api_get_user_id()) {
                 $html .= '<li><a href="javascript:void(0);" onclick="javascript:send_message_to_user(\'' . $user_id . '\');" title="' . get_lang('SendMessage') . '">';
                 $html .= Display::return_icon('compose_message.png', get_lang('SendMessage')) . '&nbsp;&nbsp;' . get_lang('SendMessage') . '</a></li>';
             }
             //check if I already sent an invitation message
             $invitation_sent_list = SocialManager::get_list_invitation_sent_by_user_id(api_get_user_id());
             if (isset($invitation_sent_list[$user_id]) && is_array($invitation_sent_list[$user_id]) && count($invitation_sent_list[$user_id]) > 0) {
                 $html .= '<li><a href="' . api_get_path(WEB_PATH) . 'main/social/invitations.php">' . Display::return_icon('invitation.png', get_lang('YouAlreadySentAnInvitation')) . '&nbsp;&nbsp;' . get_lang('YouAlreadySentAnInvitation') . '</a></li>';
             } else {
                 if (!$show_full_profile) {
                     $html .= '<li><a  href="javascript:void(0);" onclick="javascript:send_invitation_to_user(\'' . $user_id . '\');" title="' . get_lang('SendInvitation') . '">' . Display::return_icon('invitation.png', get_lang('SocialInvitationToFriends')) . '&nbsp;' . get_lang('SendInvitation') . '</a></li>';
                 }
             }
         }
         //@todo check if user is online and if it's a friend to show the chat link
         if (api_is_global_chat_enabled()) {
             $user_name = $user_info['complete_name'];
             if ($user_friend_relation == USER_RELATION_TYPE_FRIEND) {
                 if ($user_id != api_get_user_id()) {
                     //Only show chat if I'm available to talk
                     if ($current_user_info['user_is_online_in_chat'] == 1) {
                         $options = array('onclick' => "javascript:chatWith('" . $user_id . "', '" . Security::remove_XSS($user_name) . "', '" . $user_info['user_is_online_in_chat'] . "')");
                         $chat_icon = $user_info['user_is_online_in_chat'] ? Display::return_icon('online.png', get_lang('Online')) : Display::return_icon('offline.png', get_lang('Offline'));
                         $html .= Display::tag('li', Display::url($chat_icon . '&nbsp;&nbsp;' . get_lang('Chat'), 'javascript:void(0);', $options));
                     }
                 }
             } else {
                 // Do something?
                 if ($user_id != api_get_user_id()) {
                     if ($current_user_info['user_is_online_in_chat'] == 1) {
                         $message = Security::remove_XSS(sprintf(get_lang("YouHaveToAddXAsAFriendFirst"), $user_name));
                         $options = array('onclick' => "javascript:chatNotYetWith('" . $message . "')");
                         $chat_icon = $user_info['user_is_online_in_chat'] ? Display::return_icon('online.png', get_lang('Online')) : Display::return_icon('offline.png', get_lang('Offline'));
                         $html .= Display::tag('li', Display::url($chat_icon . '&nbsp;&nbsp;' . get_lang('Chat'), 'javascript:void(0);', $options));
                     }
                 }
             }
         }
         $html .= '</ul></div>';
         if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             $personal_course_list = UserManager::get_personal_session_course_list($user_id);
             $course_list_code = array();
             $i = 1;
             if (is_array($personal_course_list)) {
                 foreach ($personal_course_list as $my_course) {
                     if ($i <= 10) {
                         $course_list_code[] = array('code' => $my_course['code']);
                     } else {
                         break;
                     }
                     $i++;
                 }
                 //to avoid repeted courses
                 $course_list_code = ArrayClass::array_unique_dimensional($course_list_code);
             }
             //-----Announcements
             $my_announcement_by_user_id = intval($user_id);
             $announcements = array();
             foreach ($course_list_code as $course) {
                 $course_info = api_get_course_info($course['code']);
                 if (!empty($course_info)) {
                     $content = AnnouncementManager::get_all_annoucement_by_user_course($course_info['code'], $my_announcement_by_user_id);
                     if (!empty($content)) {
                         $url = Display::url(Display::return_icon('announcement.png', get_lang('Announcements')) . $course_info['name'] . ' (' . $content['count'] . ')', api_get_path(WEB_CODE_PATH) . 'announcements/announcements.php?cidReq=' . $course['code']);
                         $announcements[] = Display::tag('li', $url);
                     }
                 }
             }
             if (!empty($announcements)) {
                 //echo '<div align="center" class="social-menu-title" ><span class="social-menu-text1">'.get_lang('ToolAnnouncement').'</span></div>';
                 $html .= '<div class="social_menu_items">';
                 $html .= '<ul>';
                 foreach ($announcements as $announcement) {
                     $html .= $announcement;
                 }
                 $html .= '</ul>';
                 $html .= '</div>';
             }
         }
     }
     if ($show_delete_account_button) {
         $html .= '<div class="sidebar-nav"><ul><li>';
         $url = api_get_path(WEB_CODE_PATH) . 'auth/unsubscribe_account.php';
         $html .= Display::url(Display::return_icon('delete.png', get_lang('Unsubscribe'), array(), ICON_SIZE_TINY) . get_lang('Unsubscribe'), $url);
         $html .= '</li></ul></div>';
     }
     $html .= '</div>';
     return $html;
 }
Example #2
0
 /**
  * Shows the right menu of the Social Network tool
  *
  * @param string $show highlight link possible values:
  * group_add,
  * home,
  * messages,
  * messages_inbox,
  * messages_compose ,
  * messages_outbox,
  * invitations,
  * shared_profile,
  * friends,
  * groups search
  * @param int $group_id group id
  * @param int $user_id user id
  * @param bool $show_full_profile show profile or not (show or hide the user image/information)
  * @param bool $show_delete_account_button
  *
  */
 public static function show_social_menu($show = '', $group_id = 0, $user_id = 0, $show_full_profile = false, $show_delete_account_button = false)
 {
     if (empty($user_id)) {
         $user_id = api_get_user_id();
     }
     $usergroup = new UserGroup();
     $user_info = api_get_user_info($user_id, true);
     $current_user_id = api_get_user_id();
     $current_user_info = api_get_user_info($current_user_id, true);
     if ($current_user_id == $user_id) {
         $user_friend_relation = null;
     } else {
         $user_friend_relation = SocialManager::get_relation_between_contacts($current_user_id, $user_id);
     }
     $show_groups = array('groups', 'group_messages', 'messages_list', 'group_add', 'mygroups', 'group_edit', 'member_list', 'invite_friends', 'waiting_list', 'browse_groups');
     // get count unread message and total invitations
     $count_unread_message = MessageManager::get_number_of_messages(true);
     $count_unread_message = !empty($count_unread_message) ? Display::badge($count_unread_message) : null;
     $number_of_new_messages_of_friend = SocialManager::get_message_number_invitation_by_user_id(api_get_user_id());
     $group_pending_invitations = $usergroup->get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_PENDING_INVITATION, false);
     $group_pending_invitations = count($group_pending_invitations);
     $total_invitations = $number_of_new_messages_of_friend + $group_pending_invitations;
     $total_invitations = !empty($total_invitations) ? Display::badge($total_invitations) : '';
     $filesIcon = Display::return_icon('sn-files.png', get_lang('MyFiles'), '', ICON_SIZE_SMALL);
     $friendsIcon = Display::return_icon('sn-friends.png', get_lang('Friends'), '', ICON_SIZE_SMALL);
     $groupsIcon = Display::return_icon('sn-groups.png', get_lang('SocialGroups'), '', ICON_SIZE_SMALL);
     $homeIcon = Display::return_icon('sn-home.png', get_lang('Home'), '', ICON_SIZE_SMALL);
     $invitationsIcon = Display::return_icon('sn-invitations.png', get_lang('Invitations'), '', ICON_SIZE_SMALL);
     $messagesIcon = Display::return_icon('sn-message.png', get_lang('Messages'), '', ICON_SIZE_SMALL);
     $sharedProfileIcon = Display::return_icon('sn-profile.png', get_lang('ViewMySharedProfile'));
     $searchIcon = Display::return_icon('sn-search.png', get_lang('Search'), '', ICON_SIZE_SMALL);
     $html = '';
     $active = null;
     if (!in_array($show, array('shared_profile', 'groups', 'group_edit', 'member_list', 'waiting_list', 'invite_friends'))) {
         $links = '<ul class="nav nav-pills nav-stacked">';
         $active = $show == 'home' ? 'active' : null;
         $links .= '
             <li class="home-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/home.php">
                     ' . $homeIcon . ' ' . get_lang('Home') . '
                 </a>
             </li>';
         $active = $show == 'messages' ? 'active' : null;
         $links .= '
             <li class="messages-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'messages/inbox.php?f=social">
                     ' . $messagesIcon . ' ' . get_lang('Messages') . $count_unread_message . '
                 </a>
             </li>';
         //Invitations
         $active = $show == 'invitations' ? 'active' : null;
         $links .= '
             <li class="invitations-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/invitations.php">
                     ' . $invitationsIcon . ' ' . get_lang('Invitations') . $total_invitations . '
                 </a>
             </li>';
         //Shared profile and groups
         $active = $show == 'shared_profile' ? 'active' : null;
         $links .= '
             <li class="shared-profile-icon' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/profile.php">
                     ' . $sharedProfileIcon . ' ' . get_lang('ViewMySharedProfile') . '
                 </a>
             </li>';
         $active = $show == 'friends' ? 'active' : null;
         $links .= '
             <li class="friends-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/friends.php">
                     ' . $friendsIcon . ' ' . get_lang('Friends') . '
                 </a>
             </li>';
         $active = $show == 'browse_groups' ? 'active' : null;
         $links .= '
             <li class="browse-groups-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/groups.php">
                     ' . $groupsIcon . ' ' . get_lang('SocialGroups') . '
                 </a>
             </li>';
         //Search users
         $active = $show == 'search' ? 'active' : null;
         $links .= '
             <li class="search-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/search.php">
                     ' . $searchIcon . ' ' . get_lang('Search') . '
                 </a>
             </li>';
         //My files
         $active = $show == 'myfiles' ? 'active' : null;
         $myFiles = '
             <li class="myfiles-icon ' . $active . '">
                 <a href="' . api_get_path(WEB_CODE_PATH) . 'social/myfiles.php">
                     ' . $filesIcon . ' ' . get_lang('MyFiles') . '
                 </a>
             </li>';
         if (api_get_setting('platform.allow_my_files') === 'false') {
             $myFiles = '';
         }
         $links .= $myFiles;
         $links .= '</ul>';
         $html .= Display::panelCollapse(get_lang('SocialNetwork'), $links, 'social-network-menu', null, 'sn-sidebar', 'sn-sidebar-collapse');
     }
     if (in_array($show, $show_groups) && !empty($group_id)) {
         $html .= $usergroup->show_group_column_information($group_id, api_get_user_id(), $show);
     }
     if ($show == 'shared_profile') {
         $links = '<ul class="nav nav-pills nav-stacked">';
         // My own profile
         if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             $links .= '
                 <li class="home-icon ' . $active . '">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/home.php">
                         ' . $homeIcon . ' ' . get_lang('Home') . '
                     </a>
                 </li>
                 <li class="messages-icon ' . $active . '">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'messages/inbox.php?f=social">
                         ' . $messagesIcon . ' ' . get_lang('Messages') . $count_unread_message . '
                     </a>
                 </li>';
             $active = $show == 'invitations' ? 'active' : null;
             $links .= '
                 <li class="invitations-icon' . $active . '">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/invitations.php">
                         ' . $invitationsIcon . ' ' . get_lang('Invitations') . $total_invitations . '
                     </a>
                 </li>';
             $links .= '
                 <li class="shared-profile-icon active">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/profile.php">
                         ' . $sharedProfileIcon . ' ' . get_lang('ViewMySharedProfile') . '
                     </a>
                 </li>
                 <li class="friends-icon">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/friends.php">
                         ' . $friendsIcon . ' ' . get_lang('Friends') . '
                     </a>
                 </li>
                 <li class="browse-groups-icon">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/groups.php">
                         ' . $groupsIcon . ' ' . get_lang('SocialGroups') . '
                     </a>
                 </li>';
             $active = $show == 'search' ? 'active' : null;
             $links .= '
                 <li class="search-icon ' . $active . '">
                     <a href="' . api_get_path(WEB_CODE_PATH) . 'social/search.php">
                         ' . $searchIcon . ' ' . get_lang('Search') . '
                     </a>
                 </li>';
             $active = $show == 'myfiles' ? 'active' : null;
             $myFiles = '
                 <li class="myfiles-icon ' . $active . '">
                  <a href="' . api_get_path(WEB_CODE_PATH) . 'social/myfiles.php">
                         ' . $filesIcon . ' ' . get_lang('MyFiles') . '
                     </a>
                 </li>';
             if (api_get_setting('platform.allow_my_files') === 'false') {
                 $myFiles = '';
             }
             $links .= $myFiles;
         }
         // My friend profile.
         if ($user_id != api_get_user_id()) {
             $sendMessageText = get_lang('SendMessage');
             $sendMessageIcon = Display::return_icon('new-message.png', $sendMessageText);
             $sendMesssageUrl = api_get_path(WEB_AJAX_PATH) . 'user_manager.ajax.php?' . http_build_query(['a' => 'get_user_popup', 'user_id' => $user_id]);
             $links .= '<li>';
             $links .= Display::url("{$sendMessageIcon} {$sendMessageText}", $sendMesssageUrl, ['class' => 'ajax', 'title' => $sendMessageText, 'data-title' => $sendMessageText]);
             $links .= '</li>';
         }
         // Check if I already sent an invitation message
         $invitation_sent_list = SocialManager::get_list_invitation_sent_by_user_id(api_get_user_id());
         if (isset($invitation_sent_list[$user_id]) && is_array($invitation_sent_list[$user_id]) && count($invitation_sent_list[$user_id]) > 0) {
             $links .= '<li><a href="' . api_get_path(WEB_CODE_PATH) . 'social/invitations.php">' . Display::return_icon('invitation.png', get_lang('YouAlreadySentAnInvitation')) . '&nbsp;&nbsp;' . get_lang('YouAlreadySentAnInvitation') . '</a></li>';
         } else {
             if (!$show_full_profile) {
                 $links .= '<li><a class="btn-to-send-invitation" href="#" data-send-to="' . $user_id . '" title="' . get_lang('SendInvitation') . '">' . Display::return_icon('invitation.png', get_lang('SocialInvitationToFriends')) . '&nbsp;' . get_lang('SendInvitation') . '</a></li>';
             }
         }
         $links .= '</ul>';
         $html .= Display::panelCollapse(get_lang('SocialNetwork'), $links, 'social-network-menu', null, 'sn-sidebar', 'sn-sidebar-collapse');
         if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             $personal_course_list = UserManager::get_personal_session_course_list($user_id);
             $course_list_code = array();
             $i = 1;
             if (is_array($personal_course_list)) {
                 foreach ($personal_course_list as $my_course) {
                     if ($i <= 10) {
                         $course_list_code[] = array('code' => $my_course['code']);
                     } else {
                         break;
                     }
                     $i++;
                 }
                 // To avoid repeated courses
                 $course_list_code = ArrayClass::array_unique_dimensional($course_list_code);
             }
             // Announcements
             $my_announcement_by_user_id = intval($user_id);
             $announcements = array();
             foreach ($course_list_code as $course) {
                 $course_info = api_get_course_info($course['code']);
                 if (!empty($course_info)) {
                     $content = AnnouncementManager::get_all_annoucement_by_user_course($course_info['code'], $my_announcement_by_user_id);
                     if (!empty($content)) {
                         $url = Display::url(Display::return_icon('announcement.png', get_lang('Announcements')) . $course_info['name'] . ' (' . $content['count'] . ')', api_get_path(WEB_CODE_PATH) . 'announcements/announcements.php?cidReq=' . $course['code']);
                         $announcements[] = Display::tag('li', $url);
                     }
                 }
             }
             if (!empty($announcements)) {
                 $html .= '<div class="social_menu_items">';
                 $html .= '<ul>';
                 foreach ($announcements as $announcement) {
                     $html .= $announcement;
                 }
                 $html .= '</ul>';
                 $html .= '</div>';
             }
         }
     }
     if ($show_delete_account_button) {
         $html .= '<div class="sidebar-nav"><ul><li>';
         $url = api_get_path(WEB_CODE_PATH) . 'auth/unsubscribe_account.php';
         $html .= Display::url(Display::return_icon('delete.png', get_lang('Unsubscribe'), array(), ICON_SIZE_TINY) . get_lang('Unsubscribe'), $url);
         $html .= '</li></ul></div>';
     }
     $html .= '';
     return $html;
 }
Example #3
0
 /**
  * Shows the right menu of the Social Network tool
  *
  * @param string $show highlight link possible values:
  * group_add,
  * home,
  * messages,
  * messages_inbox,
  * messages_compose ,
  * messages_outbox,
  * invitations,
  * shared_profile,
  * friends,
  * groups search
  * @param int $group_id group id
  * @param int $user_id user id
  * @param bool $show_full_profile show profile or not (show or hide the user image/information)
  * @param bool $show_delete_account_button
  *
  */
 public static function show_social_menu($show = '', $group_id = 0, $user_id = 0, $show_full_profile = false, $show_delete_account_button = false)
 {
     if (empty($user_id)) {
         $user_id = api_get_user_id();
     }
     $usergroup = new UserGroup();
     $user_info = api_get_user_info($user_id, true);
     $current_user_id = api_get_user_id();
     $current_user_info = api_get_user_info($current_user_id, true);
     if ($current_user_id == $user_id) {
         $user_friend_relation = null;
     } else {
         $user_friend_relation = SocialManager::get_relation_between_contacts($current_user_id, $user_id);
     }
     $show_groups = array('groups', 'group_messages', 'messages_list', 'group_add', 'mygroups', 'group_edit', 'member_list', 'invite_friends', 'waiting_list', 'browse_groups');
     // get count unread message and total invitations
     $count_unread_message = MessageManager::get_number_of_messages(true);
     $count_unread_message = !empty($count_unread_message) ? Display::badge($count_unread_message) : null;
     $number_of_new_messages_of_friend = SocialManager::get_message_number_invitation_by_user_id(api_get_user_id());
     $group_pending_invitations = $usergroup->get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_PENDING_INVITATION, false);
     $group_pending_invitations = count($group_pending_invitations);
     $total_invitations = $number_of_new_messages_of_friend + $group_pending_invitations;
     $total_invitations = !empty($total_invitations) ? Display::badge($total_invitations) : '';
     $html = '';
     $active = null;
     if (!in_array($show, array('shared_profile', 'groups', 'group_edit', 'member_list', 'waiting_list', 'invite_friends'))) {
         $html .= '<div class="panel panel-default sidebar-nav">';
         $html .= '<div class="panel-body">';
         $html .= '<ul class="nav nav-pills nav-stacked">';
         $active = $show == 'home' ? 'active' : null;
         $html .= '<li class="home-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/home.php">' . Display::return_icon('social-home.png', get_lang('Home'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Home') . '</a></li>';
         $active = $show == 'messages' ? 'active' : null;
         $html .= '<li class="messages-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'messages/inbox.php?f=social">' . Display::return_icon('social-message.png', get_lang('Messages'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Messages') . $count_unread_message . '</a></li>';
         //Invitations
         $active = $show == 'invitations' ? 'active' : null;
         $html .= '<li class="invitations-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/invitations.php">' . Display::return_icon('social-invitations.png', get_lang('Invitations'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Invitations') . $total_invitations . '</a></li>';
         //Shared profile and groups
         $active = $show == 'shared_profile' ? 'active' : null;
         $html .= '<li class="shared-profile-icon' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/profile.php">' . Display::return_icon('social-profile.png', get_lang('ViewMySharedProfile'), '', ICON_SIZE_SMALL) . ' ' . get_lang('ViewMySharedProfile') . '</a></li>';
         $active = $show == 'friends' ? 'active' : null;
         $html .= '<li class="friends-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/friends.php">' . Display::return_icon('social-friends.png', get_lang('Friends'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Friends') . '</a></li>';
         $active = $show == 'browse_groups' ? 'active' : null;
         $html .= '<li class="browse-groups-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/groups.php">' . Display::return_icon('social-groups.png', get_lang('SocialGroups'), '', ICON_SIZE_SMALL) . ' ' . get_lang('SocialGroups') . '</a></li>';
         //Search users
         $active = $show == 'search' ? 'active' : null;
         $html .= '<li class="search-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/search.php">' . Display::return_icon('social-search.png', get_lang('Search'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Search') . '</a></li>';
         //My files
         $active = $show == 'myfiles' ? 'active' : null;
         $html .= '<li class="myfiles-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/myfiles.php">' . Display::return_icon('social-files.png', get_lang('MyFiles'), '', ICON_SIZE_SMALL) . ' ' . get_lang('MyFiles') . '</span></a></li>';
         $html .= '</ul></div></div>';
     }
     if (in_array($show, $show_groups) && !empty($group_id)) {
         $html .= $usergroup->show_group_column_information($group_id, api_get_user_id(), $show);
     }
     if ($show == 'shared_profile') {
         $html .= '<div class="panel panel-default sidebar-nav">';
         $html .= '<div class="panel-body">';
         $html .= '<ul class="nav nav-pills nav-stacked">';
         // My own profile
         if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             $html .= '<li class="home-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/home.php">' . Display::return_icon('social-home.png', get_lang('Home'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Home') . '</a></li>
                       <li class="messages-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'messages/inbox.php?f=social">' . Display::return_icon('social-message.png', get_lang('Messages'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Messages') . $count_unread_message . '</a></li>';
             $active = $show == 'invitations' ? 'active' : null;
             $html .= '<li class="invitations-icon' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/invitations.php">' . Display::return_icon('social-invitations.png', get_lang('Invitations'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Invitations') . $total_invitations . '</a></li>';
             $html .= '<li class="shared-profile-icon active"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/profile.php">' . Display::return_icon('social-profile.png', get_lang('ViewMySharedProfile'), '', ICON_SIZE_SMALL) . ' ' . get_lang('ViewMySharedProfile') . '</a></li>
                       <li class="friends-icon"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/friends.php">' . Display::return_icon('social-friends.png', get_lang('Friends'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Friends') . '</a></li>
                       <li class="browse-groups-icon"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/groups.php">' . Display::return_icon('social-groups.png', get_lang('SocialGroups'), '', ICON_SIZE_SMALL) . ' ' . get_lang('SocialGroups') . '</a></li>';
             $active = $show == 'search' ? 'active' : null;
             $html .= '<li class="search-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/search.php">' . Display::return_icon('social-search.png', get_lang('Search'), '', ICON_SIZE_SMALL) . ' ' . get_lang('Search') . '</a></li>';
             $active = $show == 'myfiles' ? 'active' : null;
             $html .= '<li class="myfiles-icon ' . $active . '"><a href="' . api_get_path(WEB_CODE_PATH) . 'social/myfiles.php">' . Display::return_icon('social-files.png', get_lang('MyFiles'), '', ICON_SIZE_SMALL) . ' ' . get_lang('MyFiles') . '</a></li>';
         }
         // My friend profile.
         if ($user_id != api_get_user_id()) {
             $html .= '<li><a href="#" class="btn-to-send-message" data-send-to="' . $user_id . '" title="' . get_lang('SendMessage') . '">';
             $html .= Display::return_icon('compose_message.png', get_lang('SendMessage')) . '&nbsp;&nbsp;' . get_lang('SendMessage') . '</a></li>';
         }
         // Check if I already sent an invitation message
         $invitation_sent_list = SocialManager::get_list_invitation_sent_by_user_id(api_get_user_id());
         if (isset($invitation_sent_list[$user_id]) && is_array($invitation_sent_list[$user_id]) && count($invitation_sent_list[$user_id]) > 0) {
             $html .= '<li><a href="' . api_get_path(WEB_CODE_PATH) . 'social/invitations.php">' . Display::return_icon('invitation.png', get_lang('YouAlreadySentAnInvitation')) . '&nbsp;&nbsp;' . get_lang('YouAlreadySentAnInvitation') . '</a></li>';
         } else {
             if (!$show_full_profile) {
                 $html .= '<li><a class="btn-to-send-invitation" href="#" data-send-to="' . $user_id . '" title="' . get_lang('SendInvitation') . '">' . Display::return_icon('invitation.png', get_lang('SocialInvitationToFriends')) . '&nbsp;' . get_lang('SendInvitation') . '</a></li>';
             }
         }
         // Chat
         //@todo check if user is online and if it's a friend to show the chat link
         /*if (api_is_global_chat_enabled()) {
                         $user_name = $user_info['complete_name'];
         
                         if ($user_friend_relation == USER_RELATION_TYPE_FRIEND) {
                             if ($user_id != api_get_user_id()) {
                                 //Only show chat if I'm available to talk
                                 if ($current_user_info['user_is_online_in_chat'] == 1) {
                                     $options = array('onclick' => "javascript:chatWith('".$user_id."', '".Security::remove_XSS($user_name)."', '".$user_info['user_is_online_in_chat']."')");
                                     $chat_icon = $user_info['user_is_online_in_chat'] ? Display::return_icon('online.png', get_lang('Online')) : Display::return_icon('offline.png', get_lang('Offline'));
                                     $html .= Display::tag('li',
                                         Display::url(
                                             $chat_icon.'&nbsp;&nbsp;'.get_lang('Chat'),
                                             'javascript:void(0);',
                                             $options
                                         )
                                     );
                                 }
                             }
                         } else {
                             if ($user_id != api_get_user_id()) {
                                 if ($current_user_info['user_is_online_in_chat'] == 1) {
                                     $message = Security::remove_XSS(sprintf(get_lang("YouHaveToAddXAsAFriendFirst"), $user_name));
                                     $options = array('onclick' => "javascript:chatNotYetWith('".$message."')");
                                     $chat_icon = $user_info['user_is_online_in_chat'] ? Display::return_icon('online.png', get_lang('Online')) : Display::return_icon('offline.png', get_lang('Offline'));
                                     $html .= Display::tag('li',
                                         Display::url(
                                             $chat_icon.'&nbsp;&nbsp;'.get_lang('Chat'),
                                             'javascript:void(0);',
                                             $options
                                         )
                                     );
                                 }
                             }
                         }
                     }*/
         $html .= '</ul></div></div>';
         if ($show_full_profile && $user_id == intval(api_get_user_id())) {
             $personal_course_list = UserManager::get_personal_session_course_list($user_id);
             $course_list_code = array();
             $i = 1;
             if (is_array($personal_course_list)) {
                 foreach ($personal_course_list as $my_course) {
                     if ($i <= 10) {
                         $course_list_code[] = array('code' => $my_course['code']);
                     } else {
                         break;
                     }
                     $i++;
                 }
                 // To avoid repeated courses
                 $course_list_code = array_unique_dimensional($course_list_code);
             }
             // Announcements
             $my_announcement_by_user_id = intval($user_id);
             $announcements = array();
             foreach ($course_list_code as $course) {
                 $course_info = api_get_course_info($course['code']);
                 if (!empty($course_info)) {
                     $content = AnnouncementManager::get_all_annoucement_by_user_course($course_info['code'], $my_announcement_by_user_id);
                     if (!empty($content)) {
                         $url = Display::url(Display::return_icon('announcement.png', get_lang('Announcements')) . $course_info['name'] . ' (' . $content['count'] . ')', api_get_path(WEB_CODE_PATH) . 'announcements/announcements.php?cidReq=' . $course['code']);
                         $announcements[] = Display::tag('li', $url);
                     }
                 }
             }
             if (!empty($announcements)) {
                 $html .= '<div class="social_menu_items">';
                 $html .= '<ul>';
                 foreach ($announcements as $announcement) {
                     $html .= $announcement;
                 }
                 $html .= '</ul>';
                 $html .= '</div>';
             }
         }
     }
     if ($show_delete_account_button) {
         $html .= '<div class="sidebar-nav"><ul><li>';
         $url = api_get_path(WEB_CODE_PATH) . 'auth/unsubscribe_account.php';
         $html .= Display::url(Display::return_icon('delete.png', get_lang('Unsubscribe'), array(), ICON_SIZE_TINY) . get_lang('Unsubscribe'), $url);
         $html .= '</li></ul></div>';
     }
     $html .= '';
     return $html;
 }